diff options
| author | Georg Brandl <georg@python.org> | 2021-01-18 21:24:00 +0100 |
|---|---|---|
| committer | Georg Brandl <georg@python.org> | 2021-01-18 22:08:36 +0100 |
| commit | 2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch) | |
| tree | 809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/nim | |
| parent | f0445be718da83541ea3401aad882f3937147263 (diff) | |
| download | pygments-git-examplefiles.tar.gz | |
Move test_examplefiles to new tests/lexers scheme.examplefiles
Diffstat (limited to 'tests/lexers/nim')
| -rw-r--r-- | tests/lexers/nim/example.txt | 9981 | ||||
| -rw-r--r-- | tests/lexers/nim/example2.txt | 842 |
2 files changed, 10823 insertions, 0 deletions
diff --git a/tests/lexers/nim/example.txt b/tests/lexers/nim/example.txt new file mode 100644 index 00000000..a09d202f --- /dev/null +++ b/tests/lexers/nim/example.txt @@ -0,0 +1,9981 @@ +---input--- +import glib2, gtk2, gdk2, gtksourceview, dialogs, os, pango, osproc, strutils +import pegs, streams +import settings, types, cfg, search + +{.push callConv:cdecl.} + +const + NimrodProjectExt = ".nimprj" + +var win: types.MainWin +win.Tabs = @[] + +search.win = addr(win) + +var lastSession: seq[string] = @[] + +var confParseFail = False # This gets set to true + # When there is an error parsing the config + +# Load the settings +try: + win.settings = cfg.load(lastSession) +except ECFGParse: + # TODO: Make the dialog show the exception + confParseFail = True + win.settings = cfg.defaultSettings() +except EIO: + win.settings = cfg.defaultSettings() + +proc getProjectTab(): int = + for i in 0..high(win.tabs): + if win.tabs[i].filename.endswith(NimrodProjectExt): return i + +proc saveTab(tabNr: int, startpath: string) = + if tabNr < 0: return + if win.Tabs[tabNr].saved: return + var path = "" + if win.Tabs[tabNr].filename == "": + path = ChooseFileToSave(win.w, startpath) + # dialogs.nim STOCK_OPEN instead of STOCK_SAVE + else: + path = win.Tabs[tabNr].filename + + if path != "": + var buffer = PTextBuffer(win.Tabs[tabNr].buffer) + # Get the text from the TextView + var startIter: TTextIter + buffer.getStartIter(addr(startIter)) + + var endIter: TTextIter + buffer.getEndIter(addr(endIter)) + + var text = buffer.getText(addr(startIter), addr(endIter), False) + # Save it to a file + var f: TFile + if open(f, path, fmWrite): + f.write(text) + f.close() + + win.tempStuff.lastSaveDir = splitFile(path).dir + + # Change the tab name and .Tabs.filename etc. + win.Tabs[tabNr].filename = path + win.Tabs[tabNr].saved = True + var name = extractFilename(path) + + var cTab = win.Tabs[tabNr] + cTab.label.setText(name) + else: + error(win.w, "Unable to write to file") + +proc saveAllTabs() = + for i in 0..high(win.tabs): + saveTab(i, os.splitFile(win.tabs[i].filename).dir) + +# GTK Events +# -- w(PWindow) +proc destroy(widget: PWidget, data: pgpointer) {.cdecl.} = + # gather some settings + win.settings.VPanedPos = PPaned(win.sourceViewTabs.getParent()).getPosition() + win.settings.winWidth = win.w.allocation.width + win.settings.winHeight = win.w.allocation.height + + # save the settings + win.save() + # then quit + main_quit() + +proc delete_event(widget: PWidget, event: PEvent, user_data: pgpointer): bool = + var quit = True + for i in low(win.Tabs)..len(win.Tabs)-1: + if not win.Tabs[i].saved: + var askSave = dialogNewWithButtons("", win.w, 0, + STOCK_SAVE, RESPONSE_ACCEPT, STOCK_CANCEL, + RESPONSE_CANCEL, + "Close without saving", RESPONSE_REJECT, nil) + askSave.setTransientFor(win.w) + # TODO: Make this dialog look better + var label = labelNew(win.Tabs[i].filename & + " is unsaved, would you like to save it ?") + PBox(askSave.vbox).pack_start(label, False, False, 0) + label.show() + + var resp = askSave.run() + gtk2.destroy(PWidget(askSave)) + case resp + of RESPONSE_ACCEPT: + saveTab(i, os.splitFile(win.tabs[i].filename).dir) + quit = True + of RESPONSE_CANCEL: + quit = False + break + of RESPONSE_REJECT: + quit = True + else: + quit = False + break + + # If False is returned the window will close + return not quit + +proc windowState_Changed(widget: PWidget, event: PEventWindowState, + user_data: pgpointer) = + win.settings.winMaximized = (event.newWindowState and + WINDOW_STATE_MAXIMIZED) != 0 + +# -- SourceView(PSourceView) & SourceBuffer +proc updateStatusBar(buffer: PTextBuffer){.cdecl.} = + # Incase this event gets fired before + # bottomBar is initialized + if win.bottomBar != nil and not win.tempStuff.stopSBUpdates: + var iter: TTextIter + + win.bottomBar.pop(0) + buffer.getIterAtMark(addr(iter), buffer.getInsert()) + var row = getLine(addr(iter)) + 1 + var col = getLineOffset(addr(iter)) + discard win.bottomBar.push(0, "Line: " & $row & " Column: " & $col) + +proc cursorMoved(buffer: PTextBuffer, location: PTextIter, + mark: PTextMark, user_data: pgpointer){.cdecl.} = + updateStatusBar(buffer) + +proc onCloseTab(btn: PButton, user_data: PWidget) = + if win.sourceViewTabs.getNPages() > 1: + var tab = win.sourceViewTabs.pageNum(user_data) + win.sourceViewTabs.removePage(tab) + + win.Tabs.delete(tab) + +proc onSwitchTab(notebook: PNotebook, page: PNotebookPage, pageNum: guint, + user_data: pgpointer) = + if win.Tabs.len()-1 >= pageNum: + win.w.setTitle("Aporia IDE - " & win.Tabs[pageNum].filename) + +proc createTabLabel(name: string, t_child: PWidget): tuple[box: PWidget, + label: PLabel] = + var box = hboxNew(False, 0) + var label = labelNew(name) + var closebtn = buttonNew() + closeBtn.setLabel(nil) + var iconSize = iconSizeFromName("tabIconSize") + if iconSize == 0: + iconSize = iconSizeRegister("tabIconSize", 10, 10) + var image = imageNewFromStock(STOCK_CLOSE, iconSize) + discard gSignalConnect(closebtn, "clicked", G_Callback(onCloseTab), t_child) + closebtn.setImage(image) + gtk2.setRelief(closebtn, RELIEF_NONE) + box.packStart(label, True, True, 0) + box.packEnd(closebtn, False, False, 0) + box.showAll() + return (box, label) + +proc changed(buffer: PTextBuffer, user_data: pgpointer) = + # Update the 'Line & Column' + #updateStatusBar(buffer) + + # Change the tabs state to 'unsaved' + # and add '*' to the Tab Name + var current = win.SourceViewTabs.getCurrentPage() + var name = "" + if win.Tabs[current].filename == "": + win.Tabs[current].saved = False + name = "Untitled *" + else: + win.Tabs[current].saved = False + name = extractFilename(win.Tabs[current].filename) & " *" + + var cTab = win.Tabs[current] + cTab.label.setText(name) + +# Other(Helper) functions + +proc initSourceView(SourceView: var PWidget, scrollWindow: var PScrolledWindow, + buffer: var PSourceBuffer) = + # This gets called by addTab + # Each tabs creates a new SourceView + # SourceScrolledWindow(ScrolledWindow) + scrollWindow = scrolledWindowNew(nil, nil) + scrollWindow.setPolicy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) + scrollWindow.show() + + # SourceView(gtkSourceView) + SourceView = sourceViewNew(buffer) + PSourceView(SourceView).setInsertSpacesInsteadOfTabs(True) + PSourceView(SourceView).setIndentWidth(win.settings.indentWidth) + PSourceView(SourceView).setShowLineNumbers(win.settings.showLineNumbers) + PSourceView(SourceView).setHighlightCurrentLine( + win.settings.highlightCurrentLine) + PSourceView(SourceView).setShowRightMargin(win.settings.rightMargin) + PSourceView(SourceView).setAutoIndent(win.settings.autoIndent) + + var font = font_description_from_string(win.settings.font) + SourceView.modifyFont(font) + + scrollWindow.add(SourceView) + SourceView.show() + + buffer.setHighlightMatchingBrackets( + win.settings.highlightMatchingBrackets) + + # UGLY workaround for yet another compiler bug: + discard gsignalConnect(buffer, "mark-set", + GCallback(aporia.cursorMoved), nil) + discard gsignalConnect(buffer, "changed", GCallback(aporia.changed), nil) + + # -- Set the syntax highlighter scheme + buffer.setScheme(win.scheme) + +proc addTab(name, filename: string) = + ## Adds a tab, if filename is not "" reads the file. And sets + ## the tabs SourceViews text to that files contents. + assert(win.nimLang != nil) + var buffer: PSourceBuffer = sourceBufferNew(win.nimLang) + + if filename != nil and filename != "": + var lang = win.langMan.guessLanguage(filename, nil) + if lang != nil: + buffer.setLanguage(lang) + else: + buffer.setHighlightSyntax(False) + + var nam = name + if nam == "": nam = "Untitled" + if filename == "": nam.add(" *") + elif filename != "" and name == "": + # Disable the undo/redo manager. + buffer.begin_not_undoable_action() + + # Load the file. + var file: string = readFile(filename) + if file != nil: + buffer.set_text(file, len(file)) + + # Enable the undo/redo manager. + buffer.end_not_undoable_action() + + # Get the name.ext of the filename, for the tabs title + nam = extractFilename(filename) + + # Init the sourceview + var sourceView: PWidget + var scrollWindow: PScrolledWindow + initSourceView(sourceView, scrollWindow, buffer) + + var (TabLabel, labelText) = createTabLabel(nam, scrollWindow) + # Add a tab + discard win.SourceViewTabs.appendPage(scrollWindow, TabLabel) + + var nTab: Tab + nTab.buffer = buffer + nTab.sourceView = sourceView + nTab.label = labelText + nTab.saved = (filename != "") + nTab.filename = filename + win.Tabs.add(nTab) + + PTextView(SourceView).setBuffer(nTab.buffer) + +# GTK Events Contd. +# -- TopMenu & TopBar + +proc newFile(menuItem: PMenuItem, user_data: pgpointer) = + addTab("", "") + win.sourceViewTabs.setCurrentPage(win.Tabs.len()-1) + +proc openFile(menuItem: PMenuItem, user_data: pgpointer) = + var startpath = "" + var currPage = win.SourceViewTabs.getCurrentPage() + if currPage <% win.tabs.len: + startpath = os.splitFile(win.tabs[currPage].filename).dir + + if startpath.len == 0: + # Use lastSavePath as the startpath + startpath = win.tempStuff.lastSaveDir + if startpath.len == 0: + startpath = os.getHomeDir() + + var files = ChooseFilesToOpen(win.w, startpath) + if files.len() > 0: + for f in items(files): + try: + addTab("", f) + except EIO: + error(win.w, "Unable to read from file") + # Switch to the newly created tab + win.sourceViewTabs.setCurrentPage(win.Tabs.len()-1) + +proc saveFile_Activate(menuItem: PMenuItem, user_data: pgpointer) = + var current = win.SourceViewTabs.getCurrentPage() + saveTab(current, os.splitFile(win.tabs[current].filename).dir) + +proc saveFileAs_Activate(menuItem: PMenuItem, user_data: pgpointer) = + var current = win.SourceViewTabs.getCurrentPage() + var (filename, saved) = (win.Tabs[current].filename, win.Tabs[current].saved) + + win.Tabs[current].saved = False + win.Tabs[current].filename = "" + saveTab(current, os.splitFile(filename).dir) + # If the user cancels the save file dialog. Restore the previous filename + # and saved state + if win.Tabs[current].filename == "": + win.Tabs[current].filename = filename + win.Tabs[current].saved = saved + +proc undo(menuItem: PMenuItem, user_data: pgpointer) = + var current = win.SourceViewTabs.getCurrentPage() + if win.Tabs[current].buffer.canUndo(): + win.Tabs[current].buffer.undo() + +proc redo(menuItem: PMenuItem, user_data: pgpointer) = + var current = win.SourceViewTabs.getCurrentPage() + if win.Tabs[current].buffer.canRedo(): + win.Tabs[current].buffer.redo() + +proc find_Activate(menuItem: PMenuItem, user_data: pgpointer) = + # Get the selected text, and set the findEntry to it. + var currentTab = win.SourceViewTabs.getCurrentPage() + var insertIter: TTextIter + win.Tabs[currentTab].buffer.getIterAtMark(addr(insertIter), + win.Tabs[currentTab].buffer.getInsert()) + var insertOffset = addr(insertIter).getOffset() + + var selectIter: TTextIter + win.Tabs[currentTab].buffer.getIterAtMark(addr(selectIter), + win.Tabs[currentTab].buffer.getSelectionBound()) + var selectOffset = addr(selectIter).getOffset() + + if insertOffset != selectOffset: + var text = win.Tabs[currentTab].buffer.getText(addr(insertIter), + addr(selectIter), false) + win.findEntry.setText(text) + + win.findBar.show() + win.findEntry.grabFocus() + win.replaceEntry.hide() + win.replaceLabel.hide() + win.replaceBtn.hide() + win.replaceAllBtn.hide() + +proc replace_Activate(menuitem: PMenuItem, user_data: pgpointer) = + win.findBar.show() + win.findEntry.grabFocus() + win.replaceEntry.show() + win.replaceLabel.show() + win.replaceBtn.show() + win.replaceAllBtn.show() + +proc settings_Activate(menuitem: PMenuItem, user_data: pgpointer) = + settings.showSettings(win) + +proc viewBottomPanel_Toggled(menuitem: PCheckMenuItem, user_data: pgpointer) = + win.settings.bottomPanelVisible = menuitem.itemGetActive() + if win.settings.bottomPanelVisible: + win.bottomPanelTabs.show() + else: + win.bottomPanelTabs.hide() + +var + pegLineError = peg"{[^(]*} '(' {\d+} ', ' \d+ ') Error:' \s* {.*}" + pegLineWarning = peg"{[^(]*} '(' {\d+} ', ' \d+ ') ' ('Warning:'/'Hint:') \s* {.*}" + pegOtherError = peg"'Error:' \s* {.*}" + pegSuccess = peg"'Hint: operation successful'.*" + +proc addText(textView: PTextView, text: string, colorTag: PTextTag = nil) = + if text != nil: + var iter: TTextIter + textView.getBuffer().getEndIter(addr(iter)) + + if colorTag == nil: + textView.getBuffer().insert(addr(iter), text, len(text)) + else: + textView.getBuffer().insertWithTags(addr(iter), text, len(text), colorTag, + nil) + +proc createColor(textView: PTextView, name, color: string): PTextTag = + var tagTable = textView.getBuffer().getTagTable() + result = tagTable.tableLookup(name) + if result == nil: + result = textView.getBuffer().createTag(name, "foreground", color, nil) + +when not defined(os.findExe): + proc findExe(exe: string): string = + ## returns "" if the exe cannot be found + result = addFileExt(exe, os.exeExt) + if ExistsFile(result): return + var path = os.getEnv("PATH") + for candidate in split(path, pathSep): + var x = candidate / result + if ExistsFile(x): return x + result = "" + +proc GetCmd(cmd, filename: string): string = + var f = quoteIfContainsWhite(filename) + if cmd =~ peg"\s* '$' y'findExe' '(' {[^)]+} ')' {.*}": + var exe = quoteIfContainsWhite(findExe(matches[0])) + if exe.len == 0: exe = matches[0] + result = exe & " " & matches[1] % f + else: + result = cmd % f + +proc showBottomPanel() = + if not win.settings.bottomPanelVisible: + win.bottomPanelTabs.show() + win.settings.bottomPanelVisible = true + PCheckMenuItem(win.viewBottomPanelMenuItem).itemSetActive(true) + # Scroll to the end of the TextView + # This is stupid, it works sometimes... it's random + var endIter: TTextIter + win.outputTextView.getBuffer().getEndIter(addr(endIter)) + discard win.outputTextView.scrollToIter( + addr(endIter), 0.25, False, 0.0, 0.0) + +proc compileRun(currentTab: int, shouldRun: bool) = + if win.Tabs[currentTab].filename.len == 0: return + # Clear the outputTextView + win.outputTextView.getBuffer().setText("", 0) + + var outp = osProc.execProcess(GetCmd(win.settings.nimrodCmd, + win.Tabs[currentTab].filename)) + # Colors + var normalTag = createColor(win.outputTextView, "normalTag", "#3d3d3d") + var errorTag = createColor(win.outputTextView, "errorTag", "red") + var warningTag = createColor(win.outputTextView, "warningTag", "darkorange") + var successTag = createColor(win.outputTextView, "successTag", "darkgreen") + for x in outp.splitLines(): + if x =~ pegLineError / pegOtherError: + win.outputTextView.addText("\n" & x, errorTag) + elif x=~ pegSuccess: + win.outputTextView.addText("\n" & x, successTag) + + # Launch the process + if shouldRun: + var filename = changeFileExt(win.Tabs[currentTab].filename, os.ExeExt) + var output = "\n" & osProc.execProcess(filename) + win.outputTextView.addText(output) + elif x =~ pegLineWarning: + win.outputTextView.addText("\n" & x, warningTag) + else: + win.outputTextView.addText("\n" & x, normalTag) + showBottomPanel() + +proc CompileCurrent_Activate(menuitem: PMenuItem, user_data: pgpointer) = + saveFile_Activate(nil, nil) + compileRun(win.SourceViewTabs.getCurrentPage(), false) + +proc CompileRunCurrent_Activate(menuitem: PMenuItem, user_data: pgpointer) = + saveFile_Activate(nil, nil) + compileRun(win.SourceViewTabs.getCurrentPage(), true) + +proc CompileProject_Activate(menuitem: PMenuItem, user_data: pgpointer) = + saveAllTabs() + compileRun(getProjectTab(), false) + +proc CompileRunProject_Activate(menuitem: PMenuItem, user_data: pgpointer) = + saveAllTabs() + compileRun(getProjectTab(), true) + +proc RunCustomCommand(cmd: string) = + saveFile_Activate(nil, nil) + var currentTab = win.SourceViewTabs.getCurrentPage() + if win.Tabs[currentTab].filename.len == 0 or cmd.len == 0: return + # Clear the outputTextView + win.outputTextView.getBuffer().setText("", 0) + var outp = osProc.execProcess(GetCmd(cmd, win.Tabs[currentTab].filename)) + var normalTag = createColor(win.outputTextView, "normalTag", "#3d3d3d") + for x in outp.splitLines(): + win.outputTextView.addText("\n" & x, normalTag) + showBottomPanel() + +proc RunCustomCommand1(menuitem: PMenuItem, user_data: pgpointer) = + RunCustomCommand(win.settings.customCmd1) + +proc RunCustomCommand2(menuitem: PMenuItem, user_data: pgpointer) = + RunCustomCommand(win.settings.customCmd2) + +proc RunCustomCommand3(menuitem: PMenuItem, user_data: pgpointer) = + RunCustomCommand(win.settings.customCmd3) + +# -- FindBar + +proc nextBtn_Clicked(button: PButton, user_data: pgpointer) = findText(True) +proc prevBtn_Clicked(button: PButton, user_data: pgpointer) = findText(False) + +proc replaceBtn_Clicked(button: PButton, user_data: pgpointer) = + var currentTab = win.SourceViewTabs.getCurrentPage() + var start, theEnd: TTextIter + if not win.Tabs[currentTab].buffer.getSelectionBounds( + addr(start), addr(theEnd)): + # If no text is selected, try finding a match. + findText(True) + if not win.Tabs[currentTab].buffer.getSelectionBounds( + addr(start), addr(theEnd)): + # No match + return + + # Remove the text + win.Tabs[currentTab].buffer.delete(addr(start), addr(theEnd)) + # Insert the replacement + var text = getText(win.replaceEntry) + win.Tabs[currentTab].buffer.insert(addr(start), text, len(text)) + +proc replaceAllBtn_Clicked(button: PButton, user_data: pgpointer) = + var find = getText(win.findEntry) + var replace = getText(win.replaceEntry) + discard replaceAll(find, replace) + +proc closeBtn_Clicked(button: PButton, user_data: pgpointer) = + win.findBar.hide() + +proc caseSens_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) = + win.settings.search = "casesens" +proc caseInSens_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) = + win.settings.search = "caseinsens" +proc style_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) = + win.settings.search = "style" +proc regex_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) = + win.settings.search = "regex" +proc peg_Changed(radiomenuitem: PRadioMenuitem, user_data: pgpointer) = + win.settings.search = "peg" + +proc extraBtn_Clicked(button: PButton, user_data: pgpointer) = + var extraMenu = menuNew() + var group: PGSList + + var caseSensMenuItem = radio_menu_item_new(group, "Case sensitive") + extraMenu.append(caseSensMenuItem) + discard signal_connect(caseSensMenuItem, "toggled", + SIGNAL_FUNC(caseSens_Changed), nil) + caseSensMenuItem.show() + group = caseSensMenuItem.ItemGetGroup() + + var caseInSensMenuItem = radio_menu_item_new(group, "Case insensitive") + extraMenu.append(caseInSensMenuItem) + discard signal_connect(caseInSensMenuItem, "toggled", + SIGNAL_FUNC(caseInSens_Changed), nil) + caseInSensMenuItem.show() + group = caseInSensMenuItem.ItemGetGroup() + + var styleMenuItem = radio_menu_item_new(group, "Style insensitive") + extraMenu.append(styleMenuItem) + discard signal_connect(styleMenuItem, "toggled", + SIGNAL_FUNC(style_Changed), nil) + styleMenuItem.show() + group = styleMenuItem.ItemGetGroup() + + var regexMenuItem = radio_menu_item_new(group, "Regex") + extraMenu.append(regexMenuItem) + discard signal_connect(regexMenuItem, "toggled", + SIGNAL_FUNC(regex_Changed), nil) + regexMenuItem.show() + group = regexMenuItem.ItemGetGroup() + + var pegMenuItem = radio_menu_item_new(group, "Pegs") + extraMenu.append(pegMenuItem) + discard signal_connect(pegMenuItem, "toggled", + SIGNAL_FUNC(peg_Changed), nil) + pegMenuItem.show() + + # Make the correct radio button active + case win.settings.search + of "casesens": + PCheckMenuItem(caseSensMenuItem).ItemSetActive(True) + of "caseinsens": + PCheckMenuItem(caseInSensMenuItem).ItemSetActive(True) + of "style": + PCheckMenuItem(styleMenuItem).ItemSetActive(True) + of "regex": + PCheckMenuItem(regexMenuItem).ItemSetActive(True) + of "peg": + PCheckMenuItem(pegMenuItem).ItemSetActive(True) + + extraMenu.popup(nil, nil, nil, nil, 0, get_current_event_time()) + +# GUI Initialization + +proc createAccelMenuItem(toolsMenu: PMenu, accGroup: PAccelGroup, + label: string, acc: gint, + action: proc (i: PMenuItem, p: pgpointer)) = + var result = menu_item_new(label) + result.addAccelerator("activate", accGroup, acc, 0, ACCEL_VISIBLE) + ToolsMenu.append(result) + show(result) + discard signal_connect(result, "activate", SIGNAL_FUNC(action), nil) + +proc createSeparator(menu: PMenu) = + var sep = separator_menu_item_new() + menu.append(sep) + sep.show() + +proc initTopMenu(MainBox: PBox) = + # Create a accelerator group, used for shortcuts + # like CTRL + S in SaveMenuItem + var accGroup = accel_group_new() + add_accel_group(win.w, accGroup) + + # TopMenu(MenuBar) + var TopMenu = menuBarNew() + + # FileMenu + var FileMenu = menuNew() + + var NewMenuItem = menu_item_new("New") # New + FileMenu.append(NewMenuItem) + show(NewMenuItem) + discard signal_connect(NewMenuItem, "activate", + SIGNAL_FUNC(newFile), nil) + + createSeparator(FileMenu) + + var OpenMenuItem = menu_item_new("Open...") # Open... + # CTRL + O + OpenMenuItem.add_accelerator("activate", accGroup, + KEY_o, CONTROL_MASK, ACCEL_VISIBLE) + FileMenu.append(OpenMenuItem) + show(OpenMenuItem) + discard signal_connect(OpenMenuItem, "activate", + SIGNAL_FUNC(aporia.openFile), nil) + + var SaveMenuItem = menu_item_new("Save") # Save + # CTRL + S + SaveMenuItem.add_accelerator("activate", accGroup, + KEY_s, CONTROL_MASK, ACCEL_VISIBLE) + FileMenu.append(SaveMenuItem) + show(SaveMenuItem) + discard signal_connect(SaveMenuItem, "activate", + SIGNAL_FUNC(saveFile_activate), nil) + + var SaveAsMenuItem = menu_item_new("Save As...") # Save as... + + SaveAsMenuItem.add_accelerator("activate", accGroup, + KEY_s, CONTROL_MASK or gdk2.SHIFT_MASK, ACCEL_VISIBLE) + FileMenu.append(SaveAsMenuItem) + show(SaveAsMenuItem) + discard signal_connect(SaveAsMenuItem, "activate", + SIGNAL_FUNC(saveFileAs_Activate), nil) + + var FileMenuItem = menuItemNewWithMnemonic("_File") + + FileMenuItem.setSubMenu(FileMenu) + FileMenuItem.show() + TopMenu.append(FileMenuItem) + + # Edit menu + var EditMenu = menuNew() + + var UndoMenuItem = menu_item_new("Undo") # Undo + EditMenu.append(UndoMenuItem) + show(UndoMenuItem) + discard signal_connect(UndoMenuItem, "activate", + SIGNAL_FUNC(aporia.undo), nil) + + var RedoMenuItem = menu_item_new("Redo") # Undo + EditMenu.append(RedoMenuItem) + show(RedoMenuItem) + discard signal_connect(RedoMenuItem, "activate", + SIGNAL_FUNC(aporia.redo), nil) + + createSeparator(EditMenu) + + var FindMenuItem = menu_item_new("Find") # Find + FindMenuItem.add_accelerator("activate", accGroup, + KEY_f, CONTROL_MASK, ACCEL_VISIBLE) + EditMenu.append(FindMenuItem) + show(FindMenuItem) + discard signal_connect(FindMenuItem, "activate", + SIGNAL_FUNC(aporia.find_Activate), nil) + + var ReplaceMenuItem = menu_item_new("Replace") # Replace + ReplaceMenuItem.add_accelerator("activate", accGroup, + KEY_h, CONTROL_MASK, ACCEL_VISIBLE) + EditMenu.append(ReplaceMenuItem) + show(ReplaceMenuItem) + discard signal_connect(ReplaceMenuItem, "activate", + SIGNAL_FUNC(aporia.replace_Activate), nil) + + createSeparator(EditMenu) + + var SettingsMenuItem = menu_item_new("Settings...") # Settings + EditMenu.append(SettingsMenuItem) + show(SettingsMenuItem) + discard signal_connect(SettingsMenuItem, "activate", + SIGNAL_FUNC(aporia.Settings_Activate), nil) + + var EditMenuItem = menuItemNewWithMnemonic("_Edit") + + EditMenuItem.setSubMenu(EditMenu) + EditMenuItem.show() + TopMenu.append(EditMenuItem) + + # View menu + var ViewMenu = menuNew() + + win.viewBottomPanelMenuItem = check_menu_item_new("Bottom Panel") + PCheckMenuItem(win.viewBottomPanelMenuItem).itemSetActive( + win.settings.bottomPanelVisible) + win.viewBottomPanelMenuItem.add_accelerator("activate", accGroup, + KEY_f9, CONTROL_MASK, ACCEL_VISIBLE) + ViewMenu.append(win.viewBottomPanelMenuItem) + show(win.viewBottomPanelMenuItem) + discard signal_connect(win.viewBottomPanelMenuItem, "toggled", + SIGNAL_FUNC(aporia.viewBottomPanel_Toggled), nil) + + var ViewMenuItem = menuItemNewWithMnemonic("_View") + + ViewMenuItem.setSubMenu(ViewMenu) + ViewMenuItem.show() + TopMenu.append(ViewMenuItem) + + + # Tools menu + var ToolsMenu = menuNew() + + createAccelMenuItem(ToolsMenu, accGroup, "Compile current file", + KEY_F4, aporia.CompileCurrent_Activate) + createAccelMenuItem(ToolsMenu, accGroup, "Compile & run current file", + KEY_F5, aporia.CompileRunCurrent_Activate) + createSeparator(ToolsMenu) + createAccelMenuItem(ToolsMenu, accGroup, "Compile project", + KEY_F8, aporia.CompileProject_Activate) + createAccelMenuItem(ToolsMenu, accGroup, "Compile & run project", + KEY_F9, aporia.CompileRunProject_Activate) + createSeparator(ToolsMenu) + createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 1", + KEY_F1, aporia.RunCustomCommand1) + createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 2", + KEY_F2, aporia.RunCustomCommand2) + createAccelMenuItem(ToolsMenu, accGroup, "Run custom command 3", + KEY_F3, aporia.RunCustomCommand3) + + var ToolsMenuItem = menuItemNewWithMnemonic("_Tools") + + ToolsMenuItem.setSubMenu(ToolsMenu) + ToolsMenuItem.show() + TopMenu.append(ToolsMenuItem) + + # Help menu + MainBox.packStart(TopMenu, False, False, 0) + TopMenu.show() + +proc initToolBar(MainBox: PBox) = + # TopBar(ToolBar) + var TopBar = toolbarNew() + TopBar.setStyle(TOOLBAR_ICONS) + + var NewFileItem = TopBar.insertStock(STOCK_NEW, "New File", + "New File", SIGNAL_FUNC(aporia.newFile), nil, 0) + TopBar.appendSpace() + var OpenItem = TopBar.insertStock(STOCK_OPEN, "Open", + "Open", SIGNAL_FUNC(aporia.openFile), nil, -1) + var SaveItem = TopBar.insertStock(STOCK_SAVE, "Save", + "Save", SIGNAL_FUNC(saveFile_Activate), nil, -1) + TopBar.appendSpace() + var UndoItem = TopBar.insertStock(STOCK_UNDO, "Undo", + "Undo", SIGNAL_FUNC(aporia.undo), nil, -1) + var RedoItem = TopBar.insertStock(STOCK_REDO, "Redo", + "Redo", SIGNAL_FUNC(aporia.redo), nil, -1) + + MainBox.packStart(TopBar, False, False, 0) + TopBar.show() + +proc initSourceViewTabs() = + win.SourceViewTabs = notebookNew() + #win.sourceViewTabs.dragDestSet(DEST_DEFAULT_DROP, nil, 0, ACTION_MOVE) + discard win.SourceViewTabs.signalConnect( + "switch-page", SIGNAL_FUNC(onSwitchTab), nil) + #discard win.SourceViewTabs.signalConnect( + # "drag-drop", SIGNAL_FUNC(svTabs_DragDrop), nil) + #discard win.SourceViewTabs.signalConnect( + # "drag-data-received", SIGNAL_FUNC(svTabs_DragDataRecv), nil) + #discard win.SourceViewTabs.signalConnect( + # "drag-motion", SIGNAL_FUNC(svTabs_DragMotion), nil) + win.SourceViewTabs.set_scrollable(True) + + win.SourceViewTabs.show() + if lastSession.len != 0: + for i in 0 .. len(lastSession)-1: + var splitUp = lastSession[i].split('|') + var (filename, offset) = (splitUp[0], splitUp[1]) + addTab("", filename) + + var iter: TTextIter + win.Tabs[i].buffer.getIterAtOffset(addr(iter), offset.parseInt()) + win.Tabs[i].buffer.moveMarkByName("insert", addr(iter)) + win.Tabs[i].buffer.moveMarkByName("selection_bound", addr(iter)) + + # TODO: Fix this..... :( + discard PTextView(win.Tabs[i].sourceView). + scrollToIter(addr(iter), 0.25, true, 0.0, 0.0) + else: + addTab("", "") + + # This doesn't work :\ + win.Tabs[0].sourceView.grabFocus() + + +proc initBottomTabs() = + win.bottomPanelTabs = notebookNew() + if win.settings.bottomPanelVisible: + win.bottomPanelTabs.show() + + # output tab + var tabLabel = labelNew("Output") + var outputTab = vboxNew(False, 0) + discard win.bottomPanelTabs.appendPage(outputTab, tabLabel) + # Compiler tabs, gtktextview + var outputScrolledWindow = scrolledwindowNew(nil, nil) + outputScrolledWindow.setPolicy(POLICY_AUTOMATIC, POLICY_AUTOMATIC) + outputTab.packStart(outputScrolledWindow, true, true, 0) + outputScrolledWindow.show() + + win.outputTextView = textviewNew() + outputScrolledWindow.add(win.outputTextView) + win.outputTextView.show() + + outputTab.show() + +proc initTAndBP(MainBox: PBox) = + # This init's the HPaned, which splits the sourceViewTabs + # and the BottomPanelTabs + initSourceViewTabs() + initBottomTabs() + + var TAndBPVPaned = vpanedNew() + tandbpVPaned.pack1(win.sourceViewTabs, resize=True, shrink=False) + tandbpVPaned.pack2(win.bottomPanelTabs, resize=False, shrink=False) + MainBox.packStart(TAndBPVPaned, True, True, 0) + tandbpVPaned.setPosition(win.settings.VPanedPos) + TAndBPVPaned.show() + +proc initFindBar(MainBox: PBox) = + # Create a fixed container + win.findBar = HBoxNew(False, 0) + win.findBar.setSpacing(4) + + # Add a Label 'Find' + var findLabel = labelNew("Find:") + win.findBar.packStart(findLabel, False, False, 0) + findLabel.show() + + # Add a (find) text entry + win.findEntry = entryNew() + win.findBar.packStart(win.findEntry, False, False, 0) + discard win.findEntry.signalConnect("activate", SIGNAL_FUNC( + aporia.nextBtn_Clicked), nil) + win.findEntry.show() + var rq: TRequisition + win.findEntry.sizeRequest(addr(rq)) + + # Make the (find) text entry longer + win.findEntry.set_size_request(190, rq.height) + + # Add a Label 'Replace' + # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown + win.replaceLabel = labelNew("Replace:") + win.findBar.packStart(win.replaceLabel, False, False, 0) + #replaceLabel.show() + + # Add a (replace) text entry + # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown + win.replaceEntry = entryNew() + win.findBar.packStart(win.replaceEntry, False, False, 0) + #win.replaceEntry.show() + var rq1: TRequisition + win.replaceEntry.sizeRequest(addr(rq1)) + + # Make the (replace) text entry longer + win.replaceEntry.set_size_request(100, rq1.height) + + # Find next button + var nextBtn = buttonNew("Next") + win.findBar.packStart(nextBtn, false, false, 0) + discard nextBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.nextBtn_Clicked), nil) + nextBtn.show() + var nxtBtnRq: TRequisition + nextBtn.sizeRequest(addr(nxtBtnRq)) + + # Find previous button + var prevBtn = buttonNew("Previous") + win.findBar.packStart(prevBtn, false, false, 0) + discard prevBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.prevBtn_Clicked), nil) + prevBtn.show() + + # Replace button + # - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown + win.replaceBtn = buttonNew("Replace") + win.findBar.packStart(win.replaceBtn, false, false, 0) + discard win.replaceBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.replaceBtn_Clicked), nil) + #replaceBtn.show() + + # Replace all button + # - this Is only shown, when the 'Search & Replace'(CTRL + H) is shown + win.replaceAllBtn = buttonNew("Replace All") + win.findBar.packStart(win.replaceAllBtn, false, false, 0) + discard win.replaceAllBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.replaceAllBtn_Clicked), nil) + #replaceAllBtn.show() + + # Right side ... + + # Close button - With a close stock image + var closeBtn = buttonNew() + var closeImage = imageNewFromStock(STOCK_CLOSE, ICON_SIZE_SMALL_TOOLBAR) + var closeBox = hboxNew(False, 0) + closeBtn.add(closeBox) + closeBox.show() + closeBox.add(closeImage) + closeImage.show() + discard closeBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.closeBtn_Clicked), nil) + win.findBar.packEnd(closeBtn, False, False, 2) + closeBtn.show() + + # Extra button - When clicked shows a menu with options like 'Use regex' + var extraBtn = buttonNew() + var extraImage = imageNewFromStock(STOCK_PROPERTIES, ICON_SIZE_SMALL_TOOLBAR) + + var extraBox = hboxNew(False, 0) + extraBtn.add(extraBox) + extraBox.show() + extraBox.add(extraImage) + extraImage.show() + discard extraBtn.signalConnect("clicked", + SIGNAL_FUNC(aporia.extraBtn_Clicked), nil) + win.findBar.packEnd(extraBtn, False, False, 0) + extraBtn.show() + + MainBox.packStart(win.findBar, False, False, 0) + win.findBar.show() + +proc initStatusBar(MainBox: PBox) = + win.bottomBar = statusbarNew() + MainBox.packStart(win.bottomBar, False, False, 0) + win.bottomBar.show() + + discard win.bottomBar.push(0, "Line: 0 Column: 0") + +proc initControls() = + # Load up the language style + win.langMan = languageManagerGetDefault() + var langpaths: array[0..1, cstring] = + [cstring(os.getApplicationDir() / langSpecs), nil] + win.langMan.setSearchPath(addr(langpaths)) + var nimLang = win.langMan.getLanguage("nimrod") + win.nimLang = nimLang + + # Load the scheme + var schemeMan = schemeManagerGetDefault() + var schemepaths: array[0..1, cstring] = + [cstring(os.getApplicationDir() / styles), nil] + schemeMan.setSearchPath(addr(schemepaths)) + win.scheme = schemeMan.getScheme(win.settings.colorSchemeID) + + # Window + win.w = windowNew(gtk2.WINDOW_TOPLEVEL) + win.w.setDefaultSize(win.settings.winWidth, win.settings.winHeight) + win.w.setTitle("Aporia IDE") + if win.settings.winMaximized: win.w.maximize() + + win.w.show() # The window has to be shown before + # setting the position of the VPaned so that + # it gets set correctly, when the window is maximized. + + discard win.w.signalConnect("destroy", SIGNAL_FUNC(aporia.destroy), nil) + discard win.w.signalConnect("delete_event", + SIGNAL_FUNC(aporia.delete_event), nil) + discard win.w.signalConnect("window-state-event", + SIGNAL_FUNC(aporia.windowState_Changed), nil) + + # MainBox (vbox) + var MainBox = vboxNew(False, 0) + win.w.add(MainBox) + + initTopMenu(MainBox) + initToolBar(MainBox) + initTAndBP(MainBox) + initFindBar(MainBox) + initStatusBar(MainBox) + + MainBox.show() + if confParseFail: + dialogs.warning(win.w, "Error parsing config file, using default settings.") + +nimrod_init() +initControls() +main() + + +---tokens--- +'import' Keyword.Namespace +' ' Text +'glib2' Name +',' Punctuation +' ' Text +'gtk2' Name +',' Punctuation +' ' Text +'gdk2' Name +',' Punctuation +' ' Text +'gtksourceview' Name +',' Punctuation +' ' Text +'dialogs' Name +',' Punctuation +' ' Text +'os' Name +',' Punctuation +' ' Text +'pango' Name +',' Punctuation +' ' Text +'osproc' Name +',' Punctuation +' ' Text +'strutils' Name +'\n' Text + +'import' Keyword.Namespace +' ' Text +'pegs' Name +',' Punctuation +' ' Text +'streams' Name +'\n' Text + +'import' Keyword.Namespace +' ' Text +'settings' Name +',' Punctuation +' ' Text +'types' Name +',' Punctuation +' ' Text +'cfg' Name +',' Punctuation +' ' Text +'search' Name +'\n\n' Text + +'{.' Punctuation +'push' Name +' ' Text +'callConv' Name +':' Punctuation +'cdecl' Name +'.' Punctuation +'}' Punctuation +'\n\n' Text + +'const' Keyword +'\n ' Text +'NimrodProjectExt' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'.nimprj' Literal.String +'"' Literal.String +'\n\n' Text + +'var' Keyword.Declaration +' ' Text +'win' Name +':' Punctuation +' ' Text +'types' Name +'.' Punctuation +'MainWin' Name +'\n' Text + +'win' Name +'.' Punctuation +'Tabs' Name +' ' Text +'=' Operator +' ' Text +'@' Operator +'[' Operator +']' Operator +'\n\n' Text + +'search' Name +'.' Punctuation +'win' Name +' ' Text +'=' Operator +' ' Text +'addr' Keyword +'(' Punctuation +'win' Name +')' Punctuation +'\n\n' Text + +'var' Keyword.Declaration +' ' Text +'lastSession' Name +':' Punctuation +' ' Text +'seq' Keyword.Type +'[' Operator +'string' Keyword.Type +']' Operator +' ' Text +'=' Operator +' ' Text +'@' Operator +'[' Operator +']' Operator +'\n\n' Text + +'var' Keyword.Declaration +' ' Text +'confParseFail' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +' ' Text +'# This gets set to true' Comment +'\n ' Text +'# When there is an error parsing the config' Comment +'\n\n' Text + +'# Load the settings' Comment +'\n' Text + +'try' Keyword +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +' ' Text +'=' Operator +' ' Text +'cfg' Name +'.' Punctuation +'load' Name +'(' Punctuation +'lastSession' Name +')' Punctuation +'\n' Text + +'except' Keyword +' ' Text +'ECFGParse' Name +':' Punctuation +'\n ' Text +'# TODO: Make the dialog show the exception' Comment +'\n ' Text +'confParseFail' Name +' ' Text +'=' Operator +' ' Text +'True' Keyword.Pseudo +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +' ' Text +'=' Operator +' ' Text +'cfg' Name +'.' Punctuation +'defaultSettings' Name +'(' Punctuation +')' Punctuation +'\n' Text + +'except' Keyword +' ' Text +'EIO' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +' ' Text +'=' Operator +' ' Text +'cfg' Name +'.' Punctuation +'defaultSettings' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'getProjectTab' Name.Function +'(' Punctuation +')' Punctuation +':' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'=' Operator +' \n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +'in' Operator.Word +' ' Text +'0' Literal.Number.Float +'..' Punctuation +'high' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +')' Punctuation +':' Punctuation +' \n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'filename' Name +'.' Punctuation +'endswith' Name +'(' Punctuation +'NimrodProjectExt' Name +')' Punctuation +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'i' Name +'\n\n' Text + +'proc ' Keyword +'saveTab' Name.Function +'(' Punctuation +'tabNr' Name +':' Punctuation +' ' Text +'int' Keyword.Type +',' Punctuation +' ' Text +'startpath' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'tabNr' Name +' ' Text +'<' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +' ' Text +'return' Keyword +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'saved' Name +':' Punctuation +' ' Text +'return' Keyword +'\n ' Text +'var' Keyword.Declaration +' ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'ChooseFileToSave' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'startpath' Name +')' Punctuation +' \n ' Text +'# dialogs.nim STOCK_OPEN instead of STOCK_SAVE' Comment +'\n ' Text +'else' Keyword +':' Punctuation +' \n ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'filename' Name +'\n \n ' Text +'if' Keyword +' ' Text +'path' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'buffer' Name +' ' Text +'=' Operator +' ' Text +'PTextBuffer' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'buffer' Name +')' Punctuation +'\n ' Text +'# Get the text from the TextView' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'startIter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'buffer' Name +'.' Punctuation +'getStartIter' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'startIter' Name +')' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'endIter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'buffer' Name +'.' Punctuation +'getEndIter' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'endIter' Name +')' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'text' Name +' ' Text +'=' Operator +' ' Text +'buffer' Name +'.' Punctuation +'getText' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'startIter' Name +')' Punctuation +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'endIter' Name +')' Punctuation +',' Punctuation +' ' Text +'False' Keyword.Pseudo +')' Punctuation +'\n ' Text +'# Save it to a file' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'f' Name +':' Punctuation +' ' Text +'TFile' Name +'\n ' Text +'if' Keyword +' ' Text +'open' Name +'(' Punctuation +'f' Name +',' Punctuation +' ' Text +'path' Name +',' Punctuation +' ' Text +'fmWrite' Name +')' Punctuation +':' Punctuation +'\n ' Text +'f' Name +'.' Punctuation +'write' Name +'(' Punctuation +'text' Name +')' Punctuation +'\n ' Text +'f' Name +'.' Punctuation +'close' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'win' Name +'.' Punctuation +'tempStuff' Name +'.' Punctuation +'lastSaveDir' Name +' ' Text +'=' Operator +' ' Text +'splitFile' Name +'(' Punctuation +'path' Name +')' Punctuation +'.' Punctuation +'dir' Name +'\n \n ' Text +'# Change the tab name and .Tabs.filename etc.' Comment +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +' ' Text +'path' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'True' Keyword.Pseudo +'\n ' Text +'var' Keyword.Declaration +' ' Text +'name' Name +' ' Text +'=' Operator +' ' Text +'extractFilename' Name +'(' Punctuation +'path' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'cTab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'tabNr' Name +']' Operator +'\n ' Text +'cTab' Name +'.' Punctuation +'label' Name +'.' Punctuation +'setText' Name +'(' Punctuation +'name' Name +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'error' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'"' Literal.String +'Unable to write to file' Literal.String +'"' Literal.String +')' Punctuation +' \n\n' Text + +'proc ' Keyword +'saveAllTabs' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +'in' Operator.Word +' ' Text +'0' Literal.Number.Float +'..' Punctuation +'high' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +')' Punctuation +':' Punctuation +' \n ' Text +'saveTab' Name +'(' Punctuation +'i' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'splitFile' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +'.' Punctuation +'dir' Name +')' Punctuation +'\n\n' Text + +'# GTK Events' Comment +'\n' Text + +'# -- w(PWindow)' Comment +'\n' Text + +'proc ' Keyword +'destroy' Name.Function +'(' Punctuation +'widget' Name +':' Punctuation +' ' Text +'PWidget' Name +',' Punctuation +' ' Text +'data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'{.' Punctuation +'cdecl' Name +'.' Punctuation +'}' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# gather some settings' Comment +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'VPanedPos' Name +' ' Text +'=' Operator +' ' Text +'PPaned' Name +'(' Punctuation +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'getParent' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'.' Punctuation +'getPosition' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winWidth' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'allocation' Name +'.' Punctuation +'width' Name +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winHeight' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'allocation' Name +'.' Punctuation +'height' Name +'\n\n ' Text +'# save the settings' Comment +'\n ' Text +'win' Name +'.' Punctuation +'save' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'# then quit' Comment +'\n ' Text +'main_quit' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'delete_event' Name.Function +'(' Punctuation +'widget' Name +':' Punctuation +' ' Text +'PWidget' Name +',' Punctuation +' ' Text +'event' Name +':' Punctuation +' ' Text +'PEvent' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +':' Punctuation +' ' Text +'bool' Keyword.Type +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'quit' Name +' ' Text +'=' Operator +' ' Text +'True' Keyword.Pseudo +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +'in' Operator.Word +' ' Text +'low' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +')' Punctuation +'..' Punctuation +'len' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +':' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'not' Operator.Word +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'saved' Name +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'askSave' Name +' ' Text +'=' Operator +' ' Text +'dialogNewWithButtons' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +'\n ' Text +'STOCK_SAVE' Name +',' Punctuation +' ' Text +'RESPONSE_ACCEPT' Name +',' Punctuation +' ' Text +'STOCK_CANCEL' Name +',' Punctuation +' \n ' Text +'RESPONSE_CANCEL' Name +',' Punctuation +'\n ' Text +'"' Literal.String +'Close without saving' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'RESPONSE_REJECT' Name +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'askSave' Name +'.' Punctuation +'setTransientFor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +')' Punctuation +'\n ' Text +'# TODO: Make this dialog look better' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'label' Name +' ' Text +'=' Operator +' ' Text +'labelNew' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'&' Operator +' \n ' Text +'"' Literal.String +' is unsaved, would you like to save it ?' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'PBox' Name +'(' Punctuation +'askSave' Name +'.' Punctuation +'vbox' Name +')' Punctuation +'.' Punctuation +'pack_start' Name +'(' Punctuation +'label' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'label' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'resp' Name +' ' Text +'=' Operator +' ' Text +'askSave' Name +'.' Punctuation +'run' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'gtk2' Name +'.' Punctuation +'destroy' Name +'(' Punctuation +'PWidget' Name +'(' Punctuation +'askSave' Name +')' Punctuation +')' Punctuation +'\n ' Text +'case' Keyword +' ' Text +'resp' Name +'\n ' Text +'of' Keyword +' ' Text +'RESPONSE_ACCEPT' Name +':' Punctuation +'\n ' Text +'saveTab' Name +'(' Punctuation +'i' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'splitFile' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +'.' Punctuation +'dir' Name +')' Punctuation +'\n ' Text +'quit' Name +' ' Text +'=' Operator +' ' Text +'True' Keyword.Pseudo +'\n ' Text +'of' Keyword +' ' Text +'RESPONSE_CANCEL' Name +':' Punctuation +'\n ' Text +'quit' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +'\n ' Text +'break' Keyword +'\n ' Text +'of' Keyword +' ' Text +'RESPONSE_REJECT' Name +':' Punctuation +'\n ' Text +'quit' Name +' ' Text +'=' Operator +' ' Text +'True' Keyword.Pseudo +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'quit' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +'\n ' Text +'break' Keyword +'\n\n ' Text +'# If False is returned the window will close' Comment +'\n ' Text +'return' Keyword +' ' Text +'not' Operator.Word +' ' Text +'quit' Name +'\n\n' Text + +'proc ' Keyword +'windowState_Changed' Name.Function +'(' Punctuation +'widget' Name +':' Punctuation +' ' Text +'PWidget' Name +',' Punctuation +' ' Text +'event' Name +':' Punctuation +' ' Text +'PEventWindowState' Name +',' Punctuation +' \n ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winMaximized' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'event' Name +'.' Punctuation +'newWindowState' Name +' ' Text +'and' Operator.Word +' \n ' Text +'WINDOW_STATE_MAXIMIZED' Name +')' Punctuation +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +'\n\n' Text + +'# -- SourceView(PSourceView) & SourceBuffer' Comment +'\n' Text + +'proc ' Keyword +'updateStatusBar' Name.Function +'(' Punctuation +'buffer' Name +':' Punctuation +' ' Text +'PTextBuffer' Name +')' Punctuation +'{.' Punctuation +'cdecl' Name +'.' Punctuation +'}' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# Incase this event gets fired before' Comment +'\n ' Text +'# bottomBar is initialized' Comment +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +' ' Text +'and' Operator.Word +' ' Text +'not' Operator.Word +' ' Text +'win' Name +'.' Punctuation +'tempStuff' Name +'.' Punctuation +'stopSBUpdates' Name +':' Punctuation +' \n ' Text +'var' Keyword.Declaration +' ' Text +'iter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n \n ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +'.' Punctuation +'pop' Name +'(' Punctuation +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'buffer' Name +'.' Punctuation +'getIterAtMark' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +',' Punctuation +' ' Text +'buffer' Name +'.' Punctuation +'getInsert' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'row' Name +' ' Text +'=' Operator +' ' Text +'getLine' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +')' Punctuation +' ' Text +'+' Operator +' ' Text +'1' Literal.Number.Integer +'\n ' Text +'var' Keyword.Declaration +' ' Text +'col' Name +' ' Text +'=' Operator +' ' Text +'getLineOffset' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +'.' Punctuation +'push' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'"' Literal.String +'Line: ' Literal.String +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'$' Operator +'row' Name +' ' Text +'&' Operator +' ' Text +'"' Literal.String +' Column: ' Literal.String +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'$' Operator +'col' Name +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'cursorMoved' Name.Function +'(' Punctuation +'buffer' Name +':' Punctuation +' ' Text +'PTextBuffer' Name +',' Punctuation +' ' Text +'location' Name +':' Punctuation +' ' Text +'PTextIter' Name +',' Punctuation +' \n ' Text +'mark' Name +':' Punctuation +' ' Text +'PTextMark' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +'{.' Punctuation +'cdecl' Name +'.' Punctuation +'}' Punctuation +' ' Text +'=' Operator +'\n ' Text +'updateStatusBar' Name +'(' Punctuation +'buffer' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'onCloseTab' Name.Function +'(' Punctuation +'btn' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'PWidget' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'getNPages' Name +'(' Punctuation +')' Punctuation +' ' Text +'>' Operator +' ' Text +'1' Literal.Number.Integer +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'tab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'pageNum' Name +'(' Punctuation +'user_data' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'removePage' Name +'(' Punctuation +'tab' Name +')' Punctuation +'\n\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'.' Punctuation +'delete' Name +'(' Punctuation +'tab' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'onSwitchTab' Name.Function +'(' Punctuation +'notebook' Name +':' Punctuation +' ' Text +'PNotebook' Name +',' Punctuation +' ' Text +'page' Name +':' Punctuation +' ' Text +'PNotebookPage' Name +',' Punctuation +' ' Text +'pageNum' Name +':' Punctuation +' ' Text +'guint' Name +',' Punctuation +' \n ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'.' Punctuation +'len' Name +'(' Punctuation +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +' ' Text +'>' Operator +'=' Operator +' ' Text +'pageNum' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'setTitle' Name +'(' Punctuation +'"' Literal.String +'Aporia IDE - ' Literal.String +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'pageNum' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'createTabLabel' Name.Function +'(' Punctuation +'name' Name +':' Punctuation +' ' Text +'string' Keyword.Type +',' Punctuation +' ' Text +'t_child' Name +':' Punctuation +' ' Text +'PWidget' Name +')' Punctuation +':' Punctuation +' ' Text +'tuple' Keyword +'[' Operator +'box' Name +':' Punctuation +' ' Text +'PWidget' Name +',' Punctuation +'\n ' Text +'label' Name +':' Punctuation +' ' Text +'PLabel' Name +']' Operator +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'box' Name +' ' Text +'=' Operator +' ' Text +'hboxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'label' Name +' ' Text +'=' Operator +' ' Text +'labelNew' Name +'(' Punctuation +'name' Name +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'closebtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'closeBtn' Name +'.' Punctuation +'setLabel' Name +'(' Punctuation +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'iconSize' Name +' ' Text +'=' Operator +' ' Text +'iconSizeFromName' Name +'(' Punctuation +'"' Literal.String +'tabIconSize' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'iconSize' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +'\n ' Text +'iconSize' Name +' ' Text +'=' Operator +' ' Text +'iconSizeRegister' Name +'(' Punctuation +'"' Literal.String +'tabIconSize' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'10' Literal.Number.Integer +',' Punctuation +' ' Text +'10' Literal.Number.Integer +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'image' Name +' ' Text +'=' Operator +' ' Text +'imageNewFromStock' Name +'(' Punctuation +'STOCK_CLOSE' Name +',' Punctuation +' ' Text +'iconSize' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'gSignalConnect' Name +'(' Punctuation +'closebtn' Name +',' Punctuation +' ' Text +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'G_Callback' Name +'(' Punctuation +'onCloseTab' Name +')' Punctuation +',' Punctuation +' ' Text +'t_child' Name +')' Punctuation +'\n ' Text +'closebtn' Name +'.' Punctuation +'setImage' Name +'(' Punctuation +'image' Name +')' Punctuation +'\n ' Text +'gtk2' Name +'.' Punctuation +'setRelief' Name +'(' Punctuation +'closebtn' Name +',' Punctuation +' ' Text +'RELIEF_NONE' Name +')' Punctuation +'\n ' Text +'box' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'label' Name +',' Punctuation +' ' Text +'True' Keyword.Pseudo +',' Punctuation +' ' Text +'True' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'box' Name +'.' Punctuation +'packEnd' Name +'(' Punctuation +'closebtn' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'box' Name +'.' Punctuation +'showAll' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'return' Keyword +' ' Text +'(' Punctuation +'box' Name +',' Punctuation +' ' Text +'label' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'changed' Name.Function +'(' Punctuation +'buffer' Name +':' Punctuation +' ' Text +'PTextBuffer' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +"# Update the 'Line & Column'" Comment +'\n ' Text +'#updateStatusBar(buffer)' Comment +'\n\n ' Text +"# Change the tabs state to 'unsaved'" Comment +'\n ' Text +"# and add '*' to the Tab Name" Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'current' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'name' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +'\n ' Text +'name' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'Untitled *' Literal.String +'"' Literal.String +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +'\n ' Text +'name' Name +' ' Text +'=' Operator +' ' Text +'extractFilename' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +' ' Text +'&' Operator +' ' Text +'"' Literal.String +' *' Literal.String +'"' Literal.String +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'cTab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'\n ' Text +'cTab' Name +'.' Punctuation +'label' Name +'.' Punctuation +'setText' Name +'(' Punctuation +'name' Name +')' Punctuation +'\n\n' Text + +'# Other(Helper) functions' Comment +'\n\n' Text + +'proc ' Keyword +'initSourceView' Name.Function +'(' Punctuation +'SourceView' Name +':' Punctuation +' ' Text +'var' Keyword.Declaration +' ' Text +'PWidget' Name +',' Punctuation +' ' Text +'scrollWindow' Name +':' Punctuation +' ' Text +'var' Keyword.Declaration +' ' Text +'PScrolledWindow' Name +',' Punctuation +'\n ' Text +'buffer' Name +':' Punctuation +' ' Text +'var' Keyword.Declaration +' ' Text +'PSourceBuffer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# This gets called by addTab' Comment +'\n ' Text +'# Each tabs creates a new SourceView' Comment +'\n ' Text +'# SourceScrolledWindow(ScrolledWindow)' Comment +'\n ' Text +'scrollWindow' Name +' ' Text +'=' Operator +' ' Text +'scrolledWindowNew' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'scrollWindow' Name +'.' Punctuation +'setPolicy' Name +'(' Punctuation +'POLICY_AUTOMATIC' Name +',' Punctuation +' ' Text +'POLICY_AUTOMATIC' Name +')' Punctuation +'\n ' Text +'scrollWindow' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# SourceView(gtkSourceView)' Comment +'\n ' Text +'SourceView' Name +' ' Text +'=' Operator +' ' Text +'sourceViewNew' Name +'(' Punctuation +'buffer' Name +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setInsertSpacesInsteadOfTabs' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setIndentWidth' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'indentWidth' Name +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setShowLineNumbers' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'showLineNumbers' Name +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setHighlightCurrentLine' Name +'(' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'highlightCurrentLine' Name +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setShowRightMargin' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'rightMargin' Name +')' Punctuation +'\n ' Text +'PSourceView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setAutoIndent' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'autoIndent' Name +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'font' Name +' ' Text +'=' Operator +' ' Text +'font_description_from_string' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'font' Name +')' Punctuation +'\n ' Text +'SourceView' Name +'.' Punctuation +'modifyFont' Name +'(' Punctuation +'font' Name +')' Punctuation +'\n \n ' Text +'scrollWindow' Name +'.' Punctuation +'add' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'\n ' Text +'SourceView' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'buffer' Name +'.' Punctuation +'setHighlightMatchingBrackets' Name +'(' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'highlightMatchingBrackets' Name +')' Punctuation +'\n \n ' Text +'# UGLY workaround for yet another compiler bug:' Comment +'\n ' Text +'discard' Keyword +' ' Text +'gsignalConnect' Name +'(' Punctuation +'buffer' Name +',' Punctuation +' ' Text +'"' Literal.String +'mark-set' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'GCallback' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'cursorMoved' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'gsignalConnect' Name +'(' Punctuation +'buffer' Name +',' Punctuation +' ' Text +'"' Literal.String +'changed' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'GCallback' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'# -- Set the syntax highlighter scheme' Comment +'\n ' Text +'buffer' Name +'.' Punctuation +'setScheme' Name +'(' Punctuation +'win' Name +'.' Punctuation +'scheme' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'addTab' Name.Function +'(' Punctuation +'name' Name +',' Punctuation +' ' Text +'filename' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'## Adds a tab, if filename is not "" reads the file. And sets' Literal.String.Doc +'\n ' Text +'## the tabs SourceViews text to that files contents.' Literal.String.Doc +'\n ' Text +'assert' Name +'(' Punctuation +'win' Name +'.' Punctuation +'nimLang' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'buffer' Name +':' Punctuation +' ' Text +'PSourceBuffer' Name +' ' Text +'=' Operator +' ' Text +'sourceBufferNew' Name +'(' Punctuation +'win' Name +'.' Punctuation +'nimLang' Name +')' Punctuation +'\n\n ' Text +'if' Keyword +' ' Text +'filename' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +' ' Text +'and' Operator.Word +' ' Text +'filename' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'lang' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'langMan' Name +'.' Punctuation +'guessLanguage' Name +'(' Punctuation +'filename' Name +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'lang' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +':' Punctuation +'\n ' Text +'buffer' Name +'.' Punctuation +'setLanguage' Name +'(' Punctuation +'lang' Name +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'buffer' Name +'.' Punctuation +'setHighlightSyntax' Name +'(' Punctuation +'False' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'nam' Name +' ' Text +'=' Operator +' ' Text +'name' Name +'\n ' Text +'if' Keyword +' ' Text +'nam' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +' ' Text +'nam' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'Untitled' Literal.String +'"' Literal.String +'\n ' Text +'if' Keyword +' ' Text +'filename' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +' ' Text +'nam' Name +'.' Punctuation +'add' Name +'(' Punctuation +'"' Literal.String +' *' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'elif' Keyword +' ' Text +'filename' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +' ' Text +'and' Operator.Word +' ' Text +'name' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'# Disable the undo/redo manager.' Comment +'\n ' Text +'buffer' Name +'.' Punctuation +'begin_not_undoable_action' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# Load the file.' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'file' Name +':' Punctuation +' ' Text +'string' Keyword.Type +' ' Text +'=' Operator +' ' Text +'readFile' Name +'(' Punctuation +'filename' Name +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'file' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +':' Punctuation +'\n ' Text +'buffer' Name +'.' Punctuation +'set_text' Name +'(' Punctuation +'file' Name +',' Punctuation +' ' Text +'len' Name +'(' Punctuation +'file' Name +')' Punctuation +')' Punctuation +'\n \n ' Text +'# Enable the undo/redo manager.' Comment +'\n ' Text +'buffer' Name +'.' Punctuation +'end_not_undoable_action' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# Get the name.ext of the filename, for the tabs title' Comment +'\n ' Text +'nam' Name +' ' Text +'=' Operator +' ' Text +'extractFilename' Name +'(' Punctuation +'filename' Name +')' Punctuation +'\n \n ' Text +'# Init the sourceview' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'sourceView' Name +':' Punctuation +' ' Text +'PWidget' Name +'\n ' Text +'var' Keyword.Declaration +' ' Text +'scrollWindow' Name +':' Punctuation +' ' Text +'PScrolledWindow' Name +'\n ' Text +'initSourceView' Name +'(' Punctuation +'sourceView' Name +',' Punctuation +' ' Text +'scrollWindow' Name +',' Punctuation +' ' Text +'buffer' Name +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'(' Punctuation +'TabLabel' Name +',' Punctuation +' ' Text +'labelText' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'createTabLabel' Name +'(' Punctuation +'nam' Name +',' Punctuation +' ' Text +'scrollWindow' Name +')' Punctuation +'\n ' Text +'# Add a tab' Comment +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'appendPage' Name +'(' Punctuation +'scrollWindow' Name +',' Punctuation +' ' Text +'TabLabel' Name +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'nTab' Name +':' Punctuation +' ' Text +'Tab' Name +'\n ' Text +'nTab' Name +'.' Punctuation +'buffer' Name +' ' Text +'=' Operator +' ' Text +'buffer' Name +'\n ' Text +'nTab' Name +'.' Punctuation +'sourceView' Name +' ' Text +'=' Operator +' ' Text +'sourceView' Name +'\n ' Text +'nTab' Name +'.' Punctuation +'label' Name +' ' Text +'=' Operator +' ' Text +'labelText' Name +'\n ' Text +'nTab' Name +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'filename' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'nTab' Name +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +' ' Text +'filename' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'.' Punctuation +'add' Name +'(' Punctuation +'nTab' Name +')' Punctuation +'\n\n ' Text +'PTextView' Name +'(' Punctuation +'SourceView' Name +')' Punctuation +'.' Punctuation +'setBuffer' Name +'(' Punctuation +'nTab' Name +'.' Punctuation +'buffer' Name +')' Punctuation +'\n\n' Text + +'# GTK Events Contd.' Comment +'\n' Text + +'# -- TopMenu & TopBar' Comment +'\n\n' Text + +'proc ' Keyword +'newFile' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'addTab' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'setCurrentPage' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'.' Punctuation +'len' Name +'(' Punctuation +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'openFile' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'startpath' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +'\n ' Text +'var' Keyword.Declaration +' ' Text +'currPage' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'currPage' Name +' ' Text +'<' Operator +'%' Operator +' ' Text +'win' Name +'.' Punctuation +'tabs' Name +'.' Punctuation +'len' Name +':' Punctuation +' \n ' Text +'startpath' Name +' ' Text +'=' Operator +' ' Text +'os' Name +'.' Punctuation +'splitFile' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +'[' Operator +'currPage' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +'.' Punctuation +'dir' Name +'\n\n ' Text +'if' Keyword +' ' Text +'startpath' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +'\n ' Text +'# Use lastSavePath as the startpath' Comment +'\n ' Text +'startpath' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'tempStuff' Name +'.' Punctuation +'lastSaveDir' Name +'\n ' Text +'if' Keyword +' ' Text +'startpath' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +'\n ' Text +'startpath' Name +' ' Text +'=' Operator +' ' Text +'os' Name +'.' Punctuation +'getHomeDir' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'files' Name +' ' Text +'=' Operator +' ' Text +'ChooseFilesToOpen' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'startpath' Name +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'files' Name +'.' Punctuation +'len' Name +'(' Punctuation +')' Punctuation +' ' Text +'>' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +'\n ' Text +'for' Keyword +' ' Text +'f' Name +' ' Text +'in' Operator.Word +' ' Text +'items' Name +'(' Punctuation +'files' Name +')' Punctuation +':' Punctuation +'\n ' Text +'try' Keyword +':' Punctuation +'\n ' Text +'addTab' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'f' Name +')' Punctuation +'\n ' Text +'except' Keyword +' ' Text +'EIO' Name +':' Punctuation +'\n ' Text +'error' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'"' Literal.String +'Unable to read from file' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'# Switch to the newly created tab' Comment +'\n ' Text +'win' Name +'.' Punctuation +'sourceViewTabs' Name +'.' Punctuation +'setCurrentPage' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'.' Punctuation +'len' Name +'(' Punctuation +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'saveFile_Activate' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'current' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'saveTab' Name +'(' Punctuation +'current' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'splitFile' Name +'(' Punctuation +'win' Name +'.' Punctuation +'tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +'.' Punctuation +'dir' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'saveFileAs_Activate' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'current' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'(' Punctuation +'filename' Name +',' Punctuation +' ' Text +'saved' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +',' Punctuation +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'saved' Name +')' Punctuation +'\n\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'False' Keyword.Pseudo +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +'\n ' Text +'saveTab' Name +'(' Punctuation +'current' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'splitFile' Name +'(' Punctuation +'filename' Name +')' Punctuation +'.' Punctuation +'dir' Name +')' Punctuation +'\n ' Text +'# If the user cancels the save file dialog. Restore the previous filename' Comment +'\n ' Text +'# and saved state' Comment +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'filename' Name +' ' Text +'=' Operator +' ' Text +'filename' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'saved' Name +' ' Text +'=' Operator +' ' Text +'saved' Name +'\n\n' Text + +'proc ' Keyword +'undo' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +' \n ' Text +'var' Keyword.Declaration +' ' Text +'current' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'canUndo' Name +'(' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'undo' Name +'(' Punctuation +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'redo' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'current' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'canRedo' Name +'(' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'current' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'redo' Name +'(' Punctuation +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'find_Activate' Name.Function +'(' Punctuation +'menuItem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +' \n ' Text +'# Get the selected text, and set the findEntry to it.' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'currentTab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'insertIter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getIterAtMark' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'insertIter' Name +')' Punctuation +',' Punctuation +' \n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getInsert' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'insertOffset' Name +' ' Text +'=' Operator +' ' Text +'addr' Keyword +'(' Punctuation +'insertIter' Name +')' Punctuation +'.' Punctuation +'getOffset' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'selectIter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getIterAtMark' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'selectIter' Name +')' Punctuation +',' Punctuation +' \n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getSelectionBound' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'selectOffset' Name +' ' Text +'=' Operator +' ' Text +'addr' Keyword +'(' Punctuation +'selectIter' Name +')' Punctuation +'.' Punctuation +'getOffset' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'if' Keyword +' ' Text +'insertOffset' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'selectOffset' Name +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'text' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getText' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'insertIter' Name +')' Punctuation +',' Punctuation +' \n ' Text +'addr' Keyword +'(' Punctuation +'selectIter' Name +')' Punctuation +',' Punctuation +' ' Text +'false' Keyword.Pseudo +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'setText' Name +'(' Punctuation +'text' Name +')' Punctuation +'\n\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'grabFocus' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceEntry' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceLabel' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceBtn' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceAllBtn' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'replace_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'grabFocus' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceEntry' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceLabel' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'replaceAllBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'settings_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'settings' Name +'.' Punctuation +'showSettings' Name +'(' Punctuation +'win' Name +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'viewBottomPanel_Toggled' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PCheckMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +' ' Text +'=' Operator +' ' Text +'menuitem' Name +'.' Punctuation +'itemGetActive' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'var' Keyword.Declaration +'\n ' Text +'pegLineError' Name +' ' Text +'=' Operator +' ' Text +'peg"' Literal.String +'{[^(]*} ' Literal.String +"'" Literal.String +'(' Literal.String +"'" Literal.String +' {' Literal.String +'\\' Literal.String +'d+} ' Literal.String +"'" Literal.String +', ' Literal.String +"'" Literal.String +' ' Literal.String +'\\' Literal.String +'d+ ' Literal.String +"'" Literal.String +') Error:' Literal.String +"'" Literal.String +' ' Literal.String +'\\' Literal.String +'s* {.*}' Literal.String +'"' Literal.String +'\n ' Text +'pegLineWarning' Name +' ' Text +'=' Operator +' ' Text +'peg"' Literal.String +'{[^(]*} ' Literal.String +"'" Literal.String +'(' Literal.String +"'" Literal.String +' {' Literal.String +'\\' Literal.String +'d+} ' Literal.String +"'" Literal.String +', ' Literal.String +"'" Literal.String +' ' Literal.String +'\\' Literal.String +'d+ ' Literal.String +"'" Literal.String +') ' Literal.String +"'" Literal.String +' (' Literal.String +"'" Literal.String +'Warning:' Literal.String +"'" Literal.String +'/' Literal.String +"'" Literal.String +'Hint:' Literal.String +"'" Literal.String +') ' Literal.String +'\\' Literal.String +'s* {.*}' Literal.String +'"' Literal.String +'\n ' Text +'pegOtherError' Name +' ' Text +'=' Operator +' ' Text +'peg"' Literal.String +"'" Literal.String +'Error:' Literal.String +"'" Literal.String +' ' Literal.String +'\\' Literal.String +'s* {.*}' Literal.String +'"' Literal.String +'\n ' Text +'pegSuccess' Name +' ' Text +'=' Operator +' ' Text +'peg"' Literal.String +"'" Literal.String +'Hint: operation successful' Literal.String +"'" Literal.String +'.*' Literal.String +'"' Literal.String +'\n\n' Text + +'proc ' Keyword +'addText' Name.Function +'(' Punctuation +'textView' Name +':' Punctuation +' ' Text +'PTextView' Name +',' Punctuation +' ' Text +'text' Name +':' Punctuation +' ' Text +'string' Keyword.Type +',' Punctuation +' ' Text +'colorTag' Name +':' Punctuation +' ' Text +'PTextTag' Name +' ' Text +'=' Operator +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'text' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'iter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'textView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'getEndIter' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +')' Punctuation +'\n\n ' Text +'if' Keyword +' ' Text +'colorTag' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +':' Punctuation +'\n ' Text +'textView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'insert' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +',' Punctuation +' ' Text +'text' Name +',' Punctuation +' ' Text +'len' Name +'(' Punctuation +'text' Name +')' Punctuation +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'textView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'insertWithTags' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +',' Punctuation +' ' Text +'text' Name +',' Punctuation +' ' Text +'len' Name +'(' Punctuation +'text' Name +')' Punctuation +',' Punctuation +' ' Text +'colorTag' Name +',' Punctuation +'\n ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'createColor' Name.Function +'(' Punctuation +'textView' Name +':' Punctuation +' ' Text +'PTextView' Name +',' Punctuation +' ' Text +'name' Name +',' Punctuation +' ' Text +'color' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'PTextTag' Name +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'tagTable' Name +' ' Text +'=' Operator +' ' Text +'textView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'getTagTable' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'tagTable' Name +'.' Punctuation +'tableLookup' Name +'(' Punctuation +'name' Name +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'result' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'nil' Keyword.Pseudo +':' Punctuation +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'textView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'createTag' Name +'(' Punctuation +'name' Name +',' Punctuation +' ' Text +'"' Literal.String +'foreground' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'color' Name +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'when' Keyword +' ' Text +'not' Operator.Word +' ' Text +'defined' Name +'(' Punctuation +'os' Name +'.' Punctuation +'findExe' Name +')' Punctuation +':' Punctuation +' \n ' Text +'proc ' Keyword +'findExe' Name.Function +'(' Punctuation +'exe' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'string' Keyword.Type +' ' Text +'=' Operator +' \n ' Text +'## returns "" if the exe cannot be found' Literal.String.Doc +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'addFileExt' Name +'(' Punctuation +'exe' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'exeExt' Name +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'ExistsFile' Name +'(' Punctuation +'result' Name +')' Punctuation +':' Punctuation +' ' Text +'return' Keyword +'\n ' Text +'var' Keyword.Declaration +' ' Text +'path' Name +' ' Text +'=' Operator +' ' Text +'os' Name +'.' Punctuation +'getEnv' Name +'(' Punctuation +'"' Literal.String +'PATH' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'for' Keyword +' ' Text +'candidate' Name +' ' Text +'in' Operator.Word +' ' Text +'split' Name +'(' Punctuation +'path' Name +',' Punctuation +' ' Text +'pathSep' Name +')' Punctuation +':' Punctuation +' \n ' Text +'var' Keyword.Declaration +' ' Text +'x' Name +' ' Text +'=' Operator +' ' Text +'candidate' Name +' ' Text +'/' Operator +' ' Text +'result' Name +'\n ' Text +'if' Keyword +' ' Text +'ExistsFile' Name +'(' Punctuation +'x' Name +')' Punctuation +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'x' Name +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +'\n\n' Text + +'proc ' Keyword +'GetCmd' Name.Function +'(' Punctuation +'cmd' Name +',' Punctuation +' ' Text +'filename' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'string' Keyword.Type +' ' Text +'=' Operator +' \n ' Text +'var' Keyword.Declaration +' ' Text +'f' Name +' ' Text +'=' Operator +' ' Text +'quoteIfContainsWhite' Name +'(' Punctuation +'filename' Name +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'cmd' Name +' ' Text +'=' Operator +'~' Operator +' ' Text +'peg"' Literal.String +'\\' Literal.String +'s* ' Literal.String +"'" Literal.String +'$' Literal.String +"'" Literal.String +' y' Literal.String +"'" Literal.String +'findExe' Literal.String +"'" Literal.String +' ' Literal.String +"'" Literal.String +'(' Literal.String +"'" Literal.String +' {[^)]+} ' Literal.String +"'" Literal.String +')' Literal.String +"'" Literal.String +' {.*}' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'exe' Name +' ' Text +'=' Operator +' ' Text +'quoteIfContainsWhite' Name +'(' Punctuation +'findExe' Name +'(' Punctuation +'matches' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +')' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'exe' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +' ' Text +'exe' Name +' ' Text +'=' Operator +' ' Text +'matches' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'exe' Name +' ' Text +'&' Operator +' ' Text +'"' Literal.String +' ' Literal.String +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'matches' Name +'[' Operator +'1' Literal.Number.Integer +']' Operator +' ' Text +'%' Operator +' ' Text +'f' Name +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'cmd' Name +' ' Text +'%' Operator +' ' Text +'f' Name +'\n\n' Text + +'proc ' Keyword +'showBottomPanel' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'not' Operator.Word +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +' ' Text +'=' Operator +' ' Text +'true' Keyword.Pseudo +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +')' Punctuation +'.' Punctuation +'itemSetActive' Name +'(' Punctuation +'true' Keyword.Pseudo +')' Punctuation +'\n ' Text +'# Scroll to the end of the TextView' Comment +'\n ' Text +"# This is stupid, it works sometimes... it's random" Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'endIter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'getEndIter' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'endIter' Name +')' Punctuation +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'scrollToIter' Name +'(' Punctuation +'\n ' Text +'addr' Keyword +'(' Punctuation +'endIter' Name +')' Punctuation +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.25' Literal.Number.Float +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.0' Literal.Number.Float +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.0' Literal.Number.Float +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'compileRun' Name.Function +'(' Punctuation +'currentTab' Name +':' Punctuation +' ' Text +'int' Keyword.Type +',' Punctuation +' ' Text +'shouldRun' Name +':' Punctuation +' ' Text +'bool' Keyword.Type +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'filename' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +' ' Text +'return' Keyword +'\n ' Text +'# Clear the outputTextView' Comment +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'setText' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'outp' Name +' ' Text +'=' Operator +' ' Text +'osProc' Name +'.' Punctuation +'execProcess' Name +'(' Punctuation +'GetCmd' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'nimrodCmd' Name +',' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +')' Punctuation +'\n ' Text +'# Colors' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'normalTag' Name +' ' Text +'=' Operator +' ' Text +'createColor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +',' Punctuation +' ' Text +'"' Literal.String +'normalTag' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'#3d3d3d' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'errorTag' Name +' ' Text +'=' Operator +' ' Text +'createColor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +',' Punctuation +' ' Text +'"' Literal.String +'errorTag' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'red' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'warningTag' Name +' ' Text +'=' Operator +' ' Text +'createColor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +',' Punctuation +' ' Text +'"' Literal.String +'warningTag' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'darkorange' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'successTag' Name +' ' Text +'=' Operator +' ' Text +'createColor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +',' Punctuation +' ' Text +'"' Literal.String +'successTag' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'darkgreen' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'for' Keyword +' ' Text +'x' Name +' ' Text +'in' Operator.Word +' ' Text +'outp' Name +'.' Punctuation +'splitLines' Name +'(' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'x' Name +' ' Text +'=' Operator +'~' Operator +' ' Text +'pegLineError' Name +' ' Text +'/' Operator +' ' Text +'pegOtherError' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'x' Name +',' Punctuation +' ' Text +'errorTag' Name +')' Punctuation +'\n ' Text +'elif' Keyword +' ' Text +'x' Name +'=' Operator +'~' Operator +' ' Text +'pegSuccess' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'x' Name +',' Punctuation +' ' Text +'successTag' Name +')' Punctuation +'\n \n ' Text +'# Launch the process' Comment +'\n ' Text +'if' Keyword +' ' Text +'shouldRun' Name +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'filename' Name +' ' Text +'=' Operator +' ' Text +'changeFileExt' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'filename' Name +',' Punctuation +' ' Text +'os' Name +'.' Punctuation +'ExeExt' Name +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'output' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'osProc' Name +'.' Punctuation +'execProcess' Name +'(' Punctuation +'filename' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'output' Name +')' Punctuation +'\n ' Text +'elif' Keyword +' ' Text +'x' Name +' ' Text +'=' Operator +'~' Operator +' ' Text +'pegLineWarning' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'x' Name +',' Punctuation +' ' Text +'warningTag' Name +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'x' Name +',' Punctuation +' ' Text +'normalTag' Name +')' Punctuation +'\n ' Text +'showBottomPanel' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'CompileCurrent_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'saveFile_Activate' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'compileRun' Name +'(' Punctuation +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'false' Keyword.Pseudo +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'CompileRunCurrent_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'saveFile_Activate' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'compileRun' Name +'(' Punctuation +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'true' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'CompileProject_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'saveAllTabs' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'compileRun' Name +'(' Punctuation +'getProjectTab' Name +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'false' Keyword.Pseudo +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'CompileRunProject_Activate' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'saveAllTabs' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'compileRun' Name +'(' Punctuation +'getProjectTab' Name +'(' Punctuation +')' Punctuation +',' Punctuation +' ' Text +'true' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'RunCustomCommand' Name.Function +'(' Punctuation +'cmd' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +' ' Text +'=' Operator +' \n ' Text +'saveFile_Activate' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'currentTab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'filename' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +' ' Text +'or' Operator.Word +' ' Text +'cmd' Name +'.' Punctuation +'len' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +' ' Text +'return' Keyword +'\n ' Text +'# Clear the outputTextView' Comment +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'getBuffer' Name +'(' Punctuation +')' Punctuation +'.' Punctuation +'setText' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'outp' Name +' ' Text +'=' Operator +' ' Text +'osProc' Name +'.' Punctuation +'execProcess' Name +'(' Punctuation +'GetCmd' Name +'(' Punctuation +'cmd' Name +',' Punctuation +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'filename' Name +')' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'normalTag' Name +' ' Text +'=' Operator +' ' Text +'createColor' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +',' Punctuation +' ' Text +'"' Literal.String +'normalTag' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'#3d3d3d' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'for' Keyword +' ' Text +'x' Name +' ' Text +'in' Operator.Word +' ' Text +'outp' Name +'.' Punctuation +'splitLines' Name +'(' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'addText' Name +'(' Punctuation +'"' Literal.String +'\\n' Literal.String.Escape +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'x' Name +',' Punctuation +' ' Text +'normalTag' Name +')' Punctuation +'\n ' Text +'showBottomPanel' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'RunCustomCommand1' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'RunCustomCommand' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'customCmd1' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'RunCustomCommand2' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'RunCustomCommand' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'customCmd2' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'RunCustomCommand3' Name.Function +'(' Punctuation +'menuitem' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'RunCustomCommand' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'customCmd3' Name +')' Punctuation +'\n\n' Text + +'# -- FindBar' Comment +'\n\n' Text + +'proc ' Keyword +'nextBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'findText' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n' Text + +'proc ' Keyword +'prevBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'findText' Name +'(' Punctuation +'False' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'replaceBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'currentTab' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'getCurrentPage' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'start' Name +',' Punctuation +' ' Text +'theEnd' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'if' Keyword +' ' Text +'not' Operator.Word +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getSelectionBounds' Name +'(' Punctuation +'\n ' Text +'addr' Keyword +'(' Punctuation +'start' Name +')' Punctuation +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'theEnd' Name +')' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'# If no text is selected, try finding a match.' Comment +'\n ' Text +'findText' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'not' Operator.Word +' ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getSelectionBounds' Name +'(' Punctuation +'\n ' Text +'addr' Keyword +'(' Punctuation +'start' Name +')' Punctuation +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'theEnd' Name +')' Punctuation +')' Punctuation +':' Punctuation +'\n ' Text +'# No match' Comment +'\n ' Text +'return' Keyword +'\n \n ' Text +'# Remove the text' Comment +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'delete' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'start' Name +')' Punctuation +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'theEnd' Name +')' Punctuation +')' Punctuation +'\n ' Text +'# Insert the replacement' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'text' Name +' ' Text +'=' Operator +' ' Text +'getText' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceEntry' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'currentTab' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'insert' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'start' Name +')' Punctuation +',' Punctuation +' ' Text +'text' Name +',' Punctuation +' ' Text +'len' Name +'(' Punctuation +'text' Name +')' Punctuation +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'replaceAllBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'find' Name +' ' Text +'=' Operator +' ' Text +'getText' Name +'(' Punctuation +'win' Name +'.' Punctuation +'findEntry' Name +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'replace' Name +' ' Text +'=' Operator +' ' Text +'getText' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceEntry' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'replaceAll' Name +'(' Punctuation +'find' Name +',' Punctuation +' ' Text +'replace' Name +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'closeBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +' \n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'hide' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'caseSens_Changed' Name.Function +'(' Punctuation +'radiomenuitem' Name +':' Punctuation +' ' Text +'PRadioMenuitem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'casesens' Literal.String +'"' Literal.String +'\n' Text + +'proc ' Keyword +'caseInSens_Changed' Name.Function +'(' Punctuation +'radiomenuitem' Name +':' Punctuation +' ' Text +'PRadioMenuitem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'caseinsens' Literal.String +'"' Literal.String +'\n' Text + +'proc ' Keyword +'style_Changed' Name.Function +'(' Punctuation +'radiomenuitem' Name +':' Punctuation +' ' Text +'PRadioMenuitem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'style' Literal.String +'"' Literal.String +'\n' Text + +'proc ' Keyword +'regex_Changed' Name.Function +'(' Punctuation +'radiomenuitem' Name +':' Punctuation +' ' Text +'PRadioMenuitem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'regex' Literal.String +'"' Literal.String +'\n' Text + +'proc ' Keyword +'peg_Changed' Name.Function +'(' Punctuation +'radiomenuitem' Name +':' Punctuation +' ' Text +'PRadioMenuitem' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +' ' Text +'=' Operator +' ' Text +'"' Literal.String +'peg' Literal.String +'"' Literal.String +'\n\n' Text + +'proc ' Keyword +'extraBtn_Clicked' Name.Function +'(' Punctuation +'button' Name +':' Punctuation +' ' Text +'PButton' Name +',' Punctuation +' ' Text +'user_data' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'extraMenu' Name +' ' Text +'=' Operator +' ' Text +'menuNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'group' Name +':' Punctuation +' ' Text +'PGSList' Name +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'caseSensMenuItem' Name +' ' Text +'=' Operator +' ' Text +'radio_menu_item_new' Name +'(' Punctuation +'group' Name +',' Punctuation +' ' Text +'"' Literal.String +'Case sensitive' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'extraMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'caseSensMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'caseSensMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'caseSens_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'caseSensMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'group' Name +' ' Text +'=' Operator +' ' Text +'caseSensMenuItem' Name +'.' Punctuation +'ItemGetGroup' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'caseInSensMenuItem' Name +' ' Text +'=' Operator +' ' Text +'radio_menu_item_new' Name +'(' Punctuation +'group' Name +',' Punctuation +' ' Text +'"' Literal.String +'Case insensitive' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'extraMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'caseInSensMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'caseInSensMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'caseInSens_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'caseInSensMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'group' Name +' ' Text +'=' Operator +' ' Text +'caseInSensMenuItem' Name +'.' Punctuation +'ItemGetGroup' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'styleMenuItem' Name +' ' Text +'=' Operator +' ' Text +'radio_menu_item_new' Name +'(' Punctuation +'group' Name +',' Punctuation +' ' Text +'"' Literal.String +'Style insensitive' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'extraMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'styleMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'styleMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'style_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'styleMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'group' Name +' ' Text +'=' Operator +' ' Text +'styleMenuItem' Name +'.' Punctuation +'ItemGetGroup' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'regexMenuItem' Name +' ' Text +'=' Operator +' ' Text +'radio_menu_item_new' Name +'(' Punctuation +'group' Name +',' Punctuation +' ' Text +'"' Literal.String +'Regex' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'extraMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'regexMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'regexMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'regex_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'regexMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'group' Name +' ' Text +'=' Operator +' ' Text +'regexMenuItem' Name +'.' Punctuation +'ItemGetGroup' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'pegMenuItem' Name +' ' Text +'=' Operator +' ' Text +'radio_menu_item_new' Name +'(' Punctuation +'group' Name +',' Punctuation +' ' Text +'"' Literal.String +'Pegs' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'extraMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'pegMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'pegMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'peg_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'pegMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# Make the correct radio button active' Comment +'\n ' Text +'case' Keyword +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'search' Name +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'casesens' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'caseSensMenuItem' Name +')' Punctuation +'.' Punctuation +'ItemSetActive' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'caseinsens' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'caseInSensMenuItem' Name +')' Punctuation +'.' Punctuation +'ItemSetActive' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'style' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'styleMenuItem' Name +')' Punctuation +'.' Punctuation +'ItemSetActive' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'regex' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'regexMenuItem' Name +')' Punctuation +'.' Punctuation +'ItemSetActive' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'peg' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'pegMenuItem' Name +')' Punctuation +'.' Punctuation +'ItemSetActive' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'extraMenu' Name +'.' Punctuation +'popup' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'get_current_event_time' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n\n' Text + +'# GUI Initialization' Comment +'\n\n' Text + +'proc ' Keyword +'createAccelMenuItem' Name.Function +'(' Punctuation +'toolsMenu' Name +':' Punctuation +' ' Text +'PMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +':' Punctuation +' ' Text +'PAccelGroup' Name +',' Punctuation +' \n ' Text +'label' Name +':' Punctuation +' ' Text +'string' Keyword.Type +',' Punctuation +' ' Text +'acc' Name +':' Punctuation +' ' Text +'gint' Name +',' Punctuation +'\n ' Text +'action' Name +':' Punctuation +' ' Text +'proc' Keyword +' ' Text +'(' Punctuation +'i' Name +':' Punctuation +' ' Text +'PMenuItem' Name +',' Punctuation +' ' Text +'p' Name +':' Punctuation +' ' Text +'pgpointer' Name +')' Punctuation +')' Punctuation +' ' Text +'=' Operator +' \n ' Text +'var' Keyword.Declaration +' ' Text +'result' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'label' Name +')' Punctuation +'\n ' Text +'result' Name +'.' Punctuation +'addAccelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'acc' Name +',' Punctuation +' ' Text +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +'\n ' Text +'ToolsMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'result' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'result' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'result' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'action' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'createSeparator' Name.Function +'(' Punctuation +'menu' Name +':' Punctuation +' ' Text +'PMenu' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'sep' Name +' ' Text +'=' Operator +' ' Text +'separator_menu_item_new' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'menu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'sep' Name +')' Punctuation +'\n ' Text +'sep' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'initTopMenu' Name.Function +'(' Punctuation +'MainBox' Name +':' Punctuation +' ' Text +'PBox' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# Create a accelerator group, used for shortcuts' Comment +'\n ' Text +'# like CTRL + S in SaveMenuItem' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'accGroup' Name +' ' Text +'=' Operator +' ' Text +'accel_group_new' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'add_accel_group' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'accGroup' Name +')' Punctuation +'\n\n ' Text +'# TopMenu(MenuBar)' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'TopMenu' Name +' ' Text +'=' Operator +' ' Text +'menuBarNew' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# FileMenu' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'FileMenu' Name +' ' Text +'=' Operator +' ' Text +'menuNew' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'NewMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'New' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# New' Comment +'\n ' Text +'FileMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'NewMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'NewMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'NewMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'newFile' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'createSeparator' Name +'(' Punctuation +'FileMenu' Name +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'OpenMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Open...' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Open...' Comment +'\n ' Text +'# CTRL + O' Comment +'\n ' Text +'OpenMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_o' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'FileMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'OpenMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'OpenMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'OpenMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'openFile' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'SaveMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Save' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Save' Comment +'\n ' Text +'# CTRL + S' Comment +'\n ' Text +'SaveMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_s' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'FileMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'SaveMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'SaveMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'SaveMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'saveFile_activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'SaveAsMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Save As...' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Save as...' Comment +'\n\n ' Text +'SaveAsMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_s' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +' ' Text +'or' Operator.Word +' ' Text +'gdk2' Name +'.' Punctuation +'SHIFT_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'FileMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'SaveAsMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'SaveAsMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'SaveAsMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'saveFileAs_Activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'FileMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menuItemNewWithMnemonic' Name +'(' Punctuation +'"' Literal.String +'_File' Literal.String +'"' Literal.String +')' Punctuation +'\n\n ' Text +'FileMenuItem' Name +'.' Punctuation +'setSubMenu' Name +'(' Punctuation +'FileMenu' Name +')' Punctuation +'\n ' Text +'FileMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'TopMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'FileMenuItem' Name +')' Punctuation +'\n \n ' Text +'# Edit menu' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'EditMenu' Name +' ' Text +'=' Operator +' ' Text +'menuNew' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'UndoMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Undo' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Undo' Comment +'\n ' Text +'EditMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'UndoMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'UndoMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'UndoMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'undo' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'RedoMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Redo' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Undo' Comment +'\n ' Text +'EditMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'RedoMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'RedoMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'RedoMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'redo' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'createSeparator' Name +'(' Punctuation +'EditMenu' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'FindMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Find' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Find' Comment +'\n ' Text +'FindMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_f' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'EditMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'FindMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'FindMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'FindMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'find_Activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'ReplaceMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Replace' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Replace' Comment +'\n ' Text +'ReplaceMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_h' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'EditMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'ReplaceMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'ReplaceMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'ReplaceMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'replace_Activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'createSeparator' Name +'(' Punctuation +'EditMenu' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'SettingsMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Settings...' Literal.String +'"' Literal.String +')' Punctuation +' ' Text +'# Settings' Comment +'\n ' Text +'EditMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'SettingsMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'SettingsMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'SettingsMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'Settings_Activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'EditMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menuItemNewWithMnemonic' Name +'(' Punctuation +'"' Literal.String +'_Edit' Literal.String +'"' Literal.String +')' Punctuation +'\n\n ' Text +'EditMenuItem' Name +'.' Punctuation +'setSubMenu' Name +'(' Punctuation +'EditMenu' Name +')' Punctuation +'\n ' Text +'EditMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'TopMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'EditMenuItem' Name +')' Punctuation +'\n \n ' Text +'# View menu' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'ViewMenu' Name +' ' Text +'=' Operator +' ' Text +'menuNew' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +' ' Text +'=' Operator +' ' Text +'check_menu_item_new' Name +'(' Punctuation +'"' Literal.String +'Bottom Panel' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'PCheckMenuItem' Name +'(' Punctuation +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +')' Punctuation +'.' Punctuation +'itemSetActive' Name +'(' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +'.' Punctuation +'add_accelerator' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' \n ' Text +'KEY_f9' Name +',' Punctuation +' ' Text +'CONTROL_MASK' Name +',' Punctuation +' ' Text +'ACCEL_VISIBLE' Name +')' Punctuation +' \n ' Text +'ViewMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +')' Punctuation +'\n ' Text +'show' Name +'(' Punctuation +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'signal_connect' Name +'(' Punctuation +'win' Name +'.' Punctuation +'viewBottomPanelMenuItem' Name +',' Punctuation +' ' Text +'"' Literal.String +'toggled' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'viewBottomPanel_Toggled' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'ViewMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menuItemNewWithMnemonic' Name +'(' Punctuation +'"' Literal.String +'_View' Literal.String +'"' Literal.String +')' Punctuation +'\n\n ' Text +'ViewMenuItem' Name +'.' Punctuation +'setSubMenu' Name +'(' Punctuation +'ViewMenu' Name +')' Punctuation +'\n ' Text +'ViewMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'TopMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'ViewMenuItem' Name +')' Punctuation +' \n \n \n ' Text +'# Tools menu' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'ToolsMenu' Name +' ' Text +'=' Operator +' ' Text +'menuNew' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Compile current file' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F4' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'CompileCurrent_Activate' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Compile & run current file' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F5' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'CompileRunCurrent_Activate' Name +')' Punctuation +'\n ' Text +'createSeparator' Name +'(' Punctuation +'ToolsMenu' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Compile project' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F8' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'CompileProject_Activate' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Compile & run project' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F9' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'CompileRunProject_Activate' Name +')' Punctuation +'\n ' Text +'createSeparator' Name +'(' Punctuation +'ToolsMenu' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Run custom command 1' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F1' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'RunCustomCommand1' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Run custom command 2' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F2' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'RunCustomCommand2' Name +')' Punctuation +'\n ' Text +'createAccelMenuItem' Name +'(' Punctuation +'ToolsMenu' Name +',' Punctuation +' ' Text +'accGroup' Name +',' Punctuation +' ' Text +'"' Literal.String +'Run custom command 3' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'KEY_F3' Name +',' Punctuation +' ' Text +'aporia' Name +'.' Punctuation +'RunCustomCommand3' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'ToolsMenuItem' Name +' ' Text +'=' Operator +' ' Text +'menuItemNewWithMnemonic' Name +'(' Punctuation +'"' Literal.String +'_Tools' Literal.String +'"' Literal.String +')' Punctuation +'\n \n ' Text +'ToolsMenuItem' Name +'.' Punctuation +'setSubMenu' Name +'(' Punctuation +'ToolsMenu' Name +')' Punctuation +'\n ' Text +'ToolsMenuItem' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'TopMenu' Name +'.' Punctuation +'append' Name +'(' Punctuation +'ToolsMenuItem' Name +')' Punctuation +'\n \n ' Text +'# Help menu' Comment +'\n ' Text +'MainBox' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'TopMenu' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'TopMenu' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'initToolBar' Name.Function +'(' Punctuation +'MainBox' Name +':' Punctuation +' ' Text +'PBox' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# TopBar(ToolBar)' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'TopBar' Name +' ' Text +'=' Operator +' ' Text +'toolbarNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'TopBar' Name +'.' Punctuation +'setStyle' Name +'(' Punctuation +'TOOLBAR_ICONS' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'NewFileItem' Name +' ' Text +'=' Operator +' ' Text +'TopBar' Name +'.' Punctuation +'insertStock' Name +'(' Punctuation +'STOCK_NEW' Name +',' Punctuation +' ' Text +'"' Literal.String +'New File' Literal.String +'"' Literal.String +',' Punctuation +'\n ' Text +'"' Literal.String +'New File' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'newFile' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'TopBar' Name +'.' Punctuation +'appendSpace' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'OpenItem' Name +' ' Text +'=' Operator +' ' Text +'TopBar' Name +'.' Punctuation +'insertStock' Name +'(' Punctuation +'STOCK_OPEN' Name +',' Punctuation +' ' Text +'"' Literal.String +'Open' Literal.String +'"' Literal.String +',' Punctuation +'\n ' Text +'"' Literal.String +'Open' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'openFile' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'SaveItem' Name +' ' Text +'=' Operator +' ' Text +'TopBar' Name +'.' Punctuation +'insertStock' Name +'(' Punctuation +'STOCK_SAVE' Name +',' Punctuation +' ' Text +'"' Literal.String +'Save' Literal.String +'"' Literal.String +',' Punctuation +'\n ' Text +'"' Literal.String +'Save' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'saveFile_Activate' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'TopBar' Name +'.' Punctuation +'appendSpace' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'UndoItem' Name +' ' Text +'=' Operator +' ' Text +'TopBar' Name +'.' Punctuation +'insertStock' Name +'(' Punctuation +'STOCK_UNDO' Name +',' Punctuation +' ' Text +'"' Literal.String +'Undo' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'"' Literal.String +'Undo' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'undo' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'RedoItem' Name +' ' Text +'=' Operator +' ' Text +'TopBar' Name +'.' Punctuation +'insertStock' Name +'(' Punctuation +'STOCK_REDO' Name +',' Punctuation +' ' Text +'"' Literal.String +'Redo' Literal.String +'"' Literal.String +',' Punctuation +'\n ' Text +'"' Literal.String +'Redo' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'redo' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n \n ' Text +'MainBox' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'TopBar' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'TopBar' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'initSourceViewTabs' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +' ' Text +'=' Operator +' ' Text +'notebookNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'#win.sourceViewTabs.dragDestSet(DEST_DEFAULT_DROP, nil, 0, ACTION_MOVE)' Comment +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'\n ' Text +'"' Literal.String +'switch-page' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'onSwitchTab' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'#discard win.SourceViewTabs.signalConnect(' Comment +'\n ' Text +'# "drag-drop", SIGNAL_FUNC(svTabs_DragDrop), nil)' Comment +'\n ' Text +'#discard win.SourceViewTabs.signalConnect(' Comment +'\n ' Text +'# "drag-data-received", SIGNAL_FUNC(svTabs_DragDataRecv), nil)' Comment +'\n ' Text +'#discard win.SourceViewTabs.signalConnect(' Comment +'\n ' Text +'# "drag-motion", SIGNAL_FUNC(svTabs_DragMotion), nil)' Comment +'\n ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'set_scrollable' Name +'(' Punctuation +'True' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'win' Name +'.' Punctuation +'SourceViewTabs' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'lastSession' Name +'.' Punctuation +'len' Name +' ' Text +'!' Operator +'=' Operator +' ' Text +'0' Literal.Number.Integer +':' Punctuation +'\n ' Text +'for' Keyword +' ' Text +'i' Name +' ' Text +'in' Operator.Word +' ' Text +'0' Literal.Number.Integer +' ' Text +'..' Punctuation +' ' Text +'len' Name +'(' Punctuation +'lastSession' Name +')' Punctuation +'-' Operator +'1' Literal.Number.Integer +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'splitUp' Name +' ' Text +'=' Operator +' ' Text +'lastSession' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'split' Name +'(' Punctuation +"'" Literal.String.Char +'|' Literal.String.Char +"'" Literal.String.Char +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'(' Punctuation +'filename' Name +',' Punctuation +' ' Text +'offset' Name +')' Punctuation +' ' Text +'=' Operator +' ' Text +'(' Punctuation +'splitUp' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +',' Punctuation +' ' Text +'splitUp' Name +'[' Operator +'1' Literal.Number.Integer +']' Operator +')' Punctuation +'\n ' Text +'addTab' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'filename' Name +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'iter' Name +':' Punctuation +' ' Text +'TTextIter' Name +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'getIterAtOffset' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +',' Punctuation +' ' Text +'offset' Name +'.' Punctuation +'parseInt' Name +'(' Punctuation +')' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'moveMarkByName' Name +'(' Punctuation +'"' Literal.String +'insert' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'buffer' Name +'.' Punctuation +'moveMarkByName' Name +'(' Punctuation +'"' Literal.String +'selection_bound' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +')' Punctuation +'\n \n ' Text +'# TODO: Fix this..... :(' Comment +'\n ' Text +'discard' Keyword +' ' Text +'PTextView' Name +'(' Punctuation +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'i' Name +']' Operator +'.' Punctuation +'sourceView' Name +')' Punctuation +'.' Punctuation +'\n ' Text +'scrollToIter' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'iter' Name +')' Punctuation +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.25' Literal.Number.Float +',' Punctuation +' ' Text +'true' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.0' Literal.Number.Float +',' Punctuation +' ' Text +'0' Literal.Number.Float +'.0' Literal.Number.Float +')' Punctuation +'\n ' Text +'else' Keyword +':' Punctuation +'\n ' Text +'addTab' Name +'(' Punctuation +'"' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'"' Literal.String +')' Punctuation +'\n \n ' Text +"# This doesn't work :\\" Comment +'\n ' Text +'win' Name +'.' Punctuation +'Tabs' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +'.' Punctuation +'sourceView' Name +'.' Punctuation +'grabFocus' Name +'(' Punctuation +')' Punctuation +'\n\n \n' Text + +'proc ' Keyword +'initBottomTabs' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +' ' Text +'=' Operator +' ' Text +'notebookNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'bottomPanelVisible' Name +':' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# output tab' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'tabLabel' Name +' ' Text +'=' Operator +' ' Text +'labelNew' Name +'(' Punctuation +'"' Literal.String +'Output' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'outputTab' Name +' ' Text +'=' Operator +' ' Text +'vboxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +'.' Punctuation +'appendPage' Name +'(' Punctuation +'outputTab' Name +',' Punctuation +' ' Text +'tabLabel' Name +')' Punctuation +'\n ' Text +'# Compiler tabs, gtktextview' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'outputScrolledWindow' Name +' ' Text +'=' Operator +' ' Text +'scrolledwindowNew' Name +'(' Punctuation +'nil' Keyword.Pseudo +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'outputScrolledWindow' Name +'.' Punctuation +'setPolicy' Name +'(' Punctuation +'POLICY_AUTOMATIC' Name +',' Punctuation +' ' Text +'POLICY_AUTOMATIC' Name +')' Punctuation +'\n ' Text +'outputTab' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'outputScrolledWindow' Name +',' Punctuation +' ' Text +'true' Keyword.Pseudo +',' Punctuation +' ' Text +'true' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'outputScrolledWindow' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +' ' Text +'=' Operator +' ' Text +'textviewNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'outputScrolledWindow' Name +'.' Punctuation +'add' Name +'(' Punctuation +'win' Name +'.' Punctuation +'outputTextView' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'outputTextView' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'outputTab' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'initTAndBP' Name.Function +'(' Punctuation +'MainBox' Name +':' Punctuation +' ' Text +'PBox' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +"# This init's the HPaned, which splits the sourceViewTabs" Comment +'\n ' Text +'# and the BottomPanelTabs' Comment +'\n ' Text +'initSourceViewTabs' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'initBottomTabs' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'var' Keyword.Declaration +' ' Text +'TAndBPVPaned' Name +' ' Text +'=' Operator +' ' Text +'vpanedNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'tandbpVPaned' Name +'.' Punctuation +'pack1' Name +'(' Punctuation +'win' Name +'.' Punctuation +'sourceViewTabs' Name +',' Punctuation +' ' Text +'resize' Name +'=' Operator +'True' Keyword.Pseudo +',' Punctuation +' ' Text +'shrink' Name +'=' Operator +'False' Keyword.Pseudo +')' Punctuation +'\n ' Text +'tandbpVPaned' Name +'.' Punctuation +'pack2' Name +'(' Punctuation +'win' Name +'.' Punctuation +'bottomPanelTabs' Name +',' Punctuation +' ' Text +'resize' Name +'=' Operator +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'shrink' Name +'=' Operator +'False' Keyword.Pseudo +')' Punctuation +'\n ' Text +'MainBox' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'TAndBPVPaned' Name +',' Punctuation +' ' Text +'True' Keyword.Pseudo +',' Punctuation +' ' Text +'True' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'tandbpVPaned' Name +'.' Punctuation +'setPosition' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'VPanedPos' Name +')' Punctuation +'\n ' Text +'TAndBPVPaned' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'initFindBar' Name.Function +'(' Punctuation +'MainBox' Name +':' Punctuation +' ' Text +'PBox' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# Create a fixed container' Comment +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +' ' Text +'=' Operator +' ' Text +'HBoxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'setSpacing' Name +'(' Punctuation +'4' Literal.Number.Integer +')' Punctuation +'\n\n ' Text +"# Add a Label 'Find'" Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'findLabel' Name +' ' Text +'=' Operator +' ' Text +'labelNew' Name +'(' Punctuation +'"' Literal.String +'Find:' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'findLabel' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'findLabel' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n ' Text +'# Add a (find) text entry' Comment +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +' ' Text +'=' Operator +' ' Text +'entryNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'findEntry' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'activate' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'\n ' Text +'aporia' Name +'.' Punctuation +'nextBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'rq' Name +':' Punctuation +' ' Text +'TRequisition' Name +' \n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'sizeRequest' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'rq' Name +')' Punctuation +')' Punctuation +'\n\n ' Text +'# Make the (find) text entry longer' Comment +'\n ' Text +'win' Name +'.' Punctuation +'findEntry' Name +'.' Punctuation +'set_size_request' Name +'(' Punctuation +'190' Literal.Number.Integer +',' Punctuation +' ' Text +'rq' Name +'.' Punctuation +'height' Name +')' Punctuation +'\n \n ' Text +"# Add a Label 'Replace' " Comment +'\n ' Text +"# - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown" Comment +'\n ' Text +'win' Name +'.' Punctuation +'replaceLabel' Name +' ' Text +'=' Operator +' ' Text +'labelNew' Name +'(' Punctuation +'"' Literal.String +'Replace:' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceLabel' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'#replaceLabel.show()' Comment +'\n \n ' Text +'# Add a (replace) text entry ' Comment +'\n ' Text +"# - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown" Comment +'\n ' Text +'win' Name +'.' Punctuation +'replaceEntry' Name +' ' Text +'=' Operator +' ' Text +'entryNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceEntry' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'#win.replaceEntry.show()' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'rq1' Name +':' Punctuation +' ' Text +'TRequisition' Name +' \n ' Text +'win' Name +'.' Punctuation +'replaceEntry' Name +'.' Punctuation +'sizeRequest' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'rq1' Name +')' Punctuation +')' Punctuation +'\n\n ' Text +'# Make the (replace) text entry longer' Comment +'\n ' Text +'win' Name +'.' Punctuation +'replaceEntry' Name +'.' Punctuation +'set_size_request' Name +'(' Punctuation +'100' Literal.Number.Integer +',' Punctuation +' ' Text +'rq1' Name +'.' Punctuation +'height' Name +')' Punctuation +'\n \n ' Text +'# Find next button' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'nextBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +'"' Literal.String +'Next' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'nextBtn' Name +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'nextBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'nextBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'nextBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'nxtBtnRq' Name +':' Punctuation +' ' Text +'TRequisition' Name +'\n ' Text +'nextBtn' Name +'.' Punctuation +'sizeRequest' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'nxtBtnRq' Name +')' Punctuation +')' Punctuation +'\n \n ' Text +'# Find previous button' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'prevBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +'"' Literal.String +'Previous' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'prevBtn' Name +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'prevBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'prevBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'prevBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'# Replace button' Comment +'\n ' Text +"# - This Is only shown, when the 'Search & Replace'(CTRL + H) is shown" Comment +'\n ' Text +'win' Name +'.' Punctuation +'replaceBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +'"' Literal.String +'Replace' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceBtn' Name +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'replaceBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'replaceBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'#replaceBtn.show()' Comment +'\n\n ' Text +'# Replace all button' Comment +'\n ' Text +"# - this Is only shown, when the 'Search & Replace'(CTRL + H) is shown" Comment +'\n ' Text +'win' Name +'.' Punctuation +'replaceAllBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +'"' Literal.String +'Replace All' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'replaceAllBtn' Name +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'false' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'replaceAllBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'replaceAllBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'#replaceAllBtn.show()' Comment +'\n \n ' Text +'# Right side ...' Comment +'\n \n ' Text +'# Close button - With a close stock image' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'closeBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'closeImage' Name +' ' Text +'=' Operator +' ' Text +'imageNewFromStock' Name +'(' Punctuation +'STOCK_CLOSE' Name +',' Punctuation +' ' Text +'ICON_SIZE_SMALL_TOOLBAR' Name +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'closeBox' Name +' ' Text +'=' Operator +' ' Text +'hboxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'closeBtn' Name +'.' Punctuation +'add' Name +'(' Punctuation +'closeBox' Name +')' Punctuation +'\n ' Text +'closeBox' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'closeBox' Name +'.' Punctuation +'add' Name +'(' Punctuation +'closeImage' Name +')' Punctuation +'\n ' Text +'closeImage' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'closeBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'closeBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packEnd' Name +'(' Punctuation +'closeBtn' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'2' Literal.Number.Integer +')' Punctuation +'\n ' Text +'closeBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +"# Extra button - When clicked shows a menu with options like 'Use regex'" Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'extraBtn' Name +' ' Text +'=' Operator +' ' Text +'buttonNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'extraImage' Name +' ' Text +'=' Operator +' ' Text +'imageNewFromStock' Name +'(' Punctuation +'STOCK_PROPERTIES' Name +',' Punctuation +' ' Text +'ICON_SIZE_SMALL_TOOLBAR' Name +')' Punctuation +'\n\n ' Text +'var' Keyword.Declaration +' ' Text +'extraBox' Name +' ' Text +'=' Operator +' ' Text +'hboxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'extraBtn' Name +'.' Punctuation +'add' Name +'(' Punctuation +'extraBox' Name +')' Punctuation +'\n ' Text +'extraBox' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'extraBox' Name +'.' Punctuation +'add' Name +'(' Punctuation +'extraImage' Name +')' Punctuation +'\n ' Text +'extraImage' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'extraBtn' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'clicked' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'extraBtn_Clicked' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'packEnd' Name +'(' Punctuation +'extraBtn' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'extraBtn' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'MainBox' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'findBar' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'findBar' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'initStatusBar' Name.Function +'(' Punctuation +'MainBox' Name +':' Punctuation +' ' Text +'PBox' Name +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +' ' Text +'=' Operator +' ' Text +'statusbarNew' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'MainBox' Name +'.' Punctuation +'packStart' Name +'(' Punctuation +'win' Name +'.' Punctuation +'bottomBar' Name +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'bottomBar' Name +'.' Punctuation +'push' Name +'(' Punctuation +'0' Literal.Number.Integer +',' Punctuation +' ' Text +'"' Literal.String +'Line: 0 Column: 0' Literal.String +'"' Literal.String +')' Punctuation +'\n \n' Text + +'proc ' Keyword +'initControls' Name.Function +'(' Punctuation +')' Punctuation +' ' Text +'=' Operator +'\n ' Text +'# Load up the language style' Comment +'\n ' Text +'win' Name +'.' Punctuation +'langMan' Name +' ' Text +'=' Operator +' ' Text +'languageManagerGetDefault' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'langpaths' Name +':' Punctuation +' ' Text +'array' Keyword.Type +'[' Operator +'0' Literal.Number.Float +'..' Punctuation +'1' Literal.Number.Integer +',' Punctuation +' ' Text +'cstring' Name +']' Operator +' ' Text +'=' Operator +' \n ' Text +'[' Operator +'cstring' Name +'(' Punctuation +'os' Name +'.' Punctuation +'getApplicationDir' Name +'(' Punctuation +')' Punctuation +' ' Text +'/' Operator +' ' Text +'langSpecs' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +']' Operator +'\n ' Text +'win' Name +'.' Punctuation +'langMan' Name +'.' Punctuation +'setSearchPath' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'langpaths' Name +')' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'nimLang' Name +' ' Text +'=' Operator +' ' Text +'win' Name +'.' Punctuation +'langMan' Name +'.' Punctuation +'getLanguage' Name +'(' Punctuation +'"' Literal.String +'nimrod' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'nimLang' Name +' ' Text +'=' Operator +' ' Text +'nimLang' Name +'\n \n ' Text +'# Load the scheme' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'schemeMan' Name +' ' Text +'=' Operator +' ' Text +'schemeManagerGetDefault' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'schemepaths' Name +':' Punctuation +' ' Text +'array' Keyword.Type +'[' Operator +'0' Literal.Number.Float +'..' Punctuation +'1' Literal.Number.Integer +',' Punctuation +' ' Text +'cstring' Name +']' Operator +' ' Text +'=' Operator +'\n ' Text +'[' Operator +'cstring' Name +'(' Punctuation +'os' Name +'.' Punctuation +'getApplicationDir' Name +'(' Punctuation +')' Punctuation +' ' Text +'/' Operator +' ' Text +'styles' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +']' Operator +'\n ' Text +'schemeMan' Name +'.' Punctuation +'setSearchPath' Name +'(' Punctuation +'addr' Keyword +'(' Punctuation +'schemepaths' Name +')' Punctuation +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'scheme' Name +' ' Text +'=' Operator +' ' Text +'schemeMan' Name +'.' Punctuation +'getScheme' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'colorSchemeID' Name +')' Punctuation +'\n \n ' Text +'# Window' Comment +'\n ' Text +'win' Name +'.' Punctuation +'w' Name +' ' Text +'=' Operator +' ' Text +'windowNew' Name +'(' Punctuation +'gtk2' Name +'.' Punctuation +'WINDOW_TOPLEVEL' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'setDefaultSize' Name +'(' Punctuation +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winWidth' Name +',' Punctuation +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winHeight' Name +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'setTitle' Name +'(' Punctuation +'"' Literal.String +'Aporia IDE' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'win' Name +'.' Punctuation +'settings' Name +'.' Punctuation +'winMaximized' Name +':' Punctuation +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'maximize' Name +'(' Punctuation +')' Punctuation +'\n \n ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +' ' Text +'# The window has to be shown before' Comment +'\n ' Text +'# setting the position of the VPaned so that' Comment +'\n ' Text +'# it gets set correctly, when the window is maximized.' Comment +'\n \n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'destroy' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'destroy' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'delete_event' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'delete_event' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n ' Text +'discard' Keyword +' ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'signalConnect' Name +'(' Punctuation +'"' Literal.String +'window-state-event' Literal.String +'"' Literal.String +',' Punctuation +' \n ' Text +'SIGNAL_FUNC' Name +'(' Punctuation +'aporia' Name +'.' Punctuation +'windowState_Changed' Name +')' Punctuation +',' Punctuation +' ' Text +'nil' Keyword.Pseudo +')' Punctuation +'\n \n ' Text +'# MainBox (vbox)' Comment +'\n ' Text +'var' Keyword.Declaration +' ' Text +'MainBox' Name +' ' Text +'=' Operator +' ' Text +'vboxNew' Name +'(' Punctuation +'False' Keyword.Pseudo +',' Punctuation +' ' Text +'0' Literal.Number.Integer +')' Punctuation +'\n ' Text +'win' Name +'.' Punctuation +'w' Name +'.' Punctuation +'add' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n \n ' Text +'initTopMenu' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n ' Text +'initToolBar' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n ' Text +'initTAndBP' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n ' Text +'initFindBar' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n ' Text +'initStatusBar' Name +'(' Punctuation +'MainBox' Name +')' Punctuation +'\n \n ' Text +'MainBox' Name +'.' Punctuation +'show' Name +'(' Punctuation +')' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'confParseFail' Name +':' Punctuation +'\n ' Text +'dialogs' Name +'.' Punctuation +'warning' Name +'(' Punctuation +'win' Name +'.' Punctuation +'w' Name +',' Punctuation +' ' Text +'"' Literal.String +'Error parsing config file, using default settings.' Literal.String +'"' Literal.String +')' Punctuation +'\n \n' Text + +'nimrod_init' Name +'(' Punctuation +')' Punctuation +'\n' Text + +'initControls' Name +'(' Punctuation +')' Punctuation +'\n' Text + +'main' Name +'(' Punctuation +')' Punctuation +'\n' Text diff --git a/tests/lexers/nim/example2.txt b/tests/lexers/nim/example2.txt new file mode 100644 index 00000000..5f181877 --- /dev/null +++ b/tests/lexers/nim/example2.txt @@ -0,0 +1,842 @@ +---input--- +import re + +for x in lines("myfile.txt"): + if x =~ re"(\w+)=(.*)": + echo "Key: ", matches[0], + " Value: ", matches[1] + +Echo("What's your name? ") +var name: string = readLine(stdin) +if name == "": + echo("Poor soul, you lost your name?") +elif name == "name": + echo("Very funny, your name is name.") +else: + Echo("Hi, ", name, "!") + +var name = readLine(stdin) +case name +of "": + echo("Poor soul, you lost your name?") +of "name": + echo("Very funny, your name is name.") +else: + Echo("Hi, ", name, "!") + +from strutils import parseInt + +Echo("A number please: ") +var n = parseInt(readLine(stdin)) +case n +of 0..2, 4..7: Echo("The number is in the set: {0, 1, 2, 4, 5, 6, 7}") +of 3, 8: Echo("The number is 3 or 8") + +Echo("Counting to 10: ") +var i = 1 +while i <= 10: + Echo($i) + inc(i) + +proc yes(question: string): bool = + Echo(question, " (y/n)") + while true: + case readLine(stdin) + of "y", "Y", "yes", "Yes": return true + of "n", "N", "no", "No": return false + else: Echo("Please be clear: yes or no") + +proc even(n: int): bool + +proc odd(n: int): bool = + if n == 1: return true + else: return even(n-1) + +iterator countup(a, b: int): int = + var res = a + while res <= b: + yield res + inc(res) + +type + TPerson = object of TObject + name*: string # the * means that `name` is accessible from other modules + age: int # no * means that the field is hidden from other modules + + TStudent = object of TPerson # TStudent inherits from TPerson + id: int # with an id field + +var + student: TStudent + person: TPerson +assert(student is TStudent) + +echo({'a', 'b', 'c'}.card) +stdout.writeln("Hallo") +var + f: TFile +if open(f, "numbers.txt"): + try: + var a = readLine(f) + var b = readLine(f) + echo("sum: " & $(parseInt(a) + parseInt(b))) + except EOverflow: + echo("overflow!") + except EInvalidValue: + echo("could not convert string to integer") + except EIO: + echo("IO error!") + except: + echo("Unknown exception!") + # reraise the unknown exception: + raise + finally: + close(f) + +---tokens--- +'import' Keyword.Namespace +' ' Text +'re' Name +'\n\n' Text + +'for' Keyword +' ' Text +'x' Name +' ' Text +'in' Operator.Word +' ' Text +'lines' Name +'(' Punctuation +'"' Literal.String +'myfile.txt' Literal.String +'"' Literal.String +')' Punctuation +':' Punctuation +'\n ' Text +'if' Keyword +' ' Text +'x' Name +' ' Text +'=' Operator +'~' Operator +' ' Text +'re"' Literal.String +'(' Literal.String +'\\' Literal.String +'w+)=(.*)' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'echo' Name +' ' Text +'"' Literal.String +'Key: ' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'matches' Name +'[' Operator +'0' Literal.Number.Integer +']' Operator +',' Punctuation +'\n ' Text +'"' Literal.String +' Value: ' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'matches' Name +'[' Operator +'1' Literal.Number.Integer +']' Operator +'\n\n' Text + +'Echo' Name +'(' Punctuation +'"' Literal.String +'What' Literal.String +"'" Literal.String +'s your name? ' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'var' Keyword.Declaration +' ' Text +'name' Name +':' Punctuation +' ' Text +'string' Keyword.Type +' ' Text +'=' Operator +' ' Text +'readLine' Name +'(' Punctuation +'stdin' Name +')' Punctuation +'\n' Text + +'if' Keyword +' ' Text +'name' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'Poor soul, you lost your name?' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'elif' Keyword +' ' Text +'name' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'"' Literal.String +'name' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'Very funny, your name is name.' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'else' Keyword +':' Punctuation +'\n ' Text +'Echo' Name +'(' Punctuation +'"' Literal.String +'Hi, ' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'name' Name +',' Punctuation +' ' Text +'"' Literal.String +'!' Literal.String +'"' Literal.String +')' Punctuation +'\n\n' Text + +'var' Keyword.Declaration +' ' Text +'name' Name +' ' Text +'=' Operator +' ' Text +'readLine' Name +'(' Punctuation +'stdin' Name +')' Punctuation +'\n' Text + +'case' Keyword +' ' Text +'name' Name +'\n' Text + +'of' Keyword +' ' Text +'"' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'Poor soul, you lost your name?' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'of' Keyword +' ' Text +'"' Literal.String +'name' Literal.String +'"' Literal.String +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'Very funny, your name is name.' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'else' Keyword +':' Punctuation +'\n ' Text +'Echo' Name +'(' Punctuation +'"' Literal.String +'Hi, ' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'name' Name +',' Punctuation +' ' Text +'"' Literal.String +'!' Literal.String +'"' Literal.String +')' Punctuation +'\n\n' Text + +'from' Keyword.Namespace +' ' Text +'strutils' Name +' ' Text +'import' Keyword.Namespace +' ' Text +'parseInt' Name +'\n\n' Text + +'Echo' Name +'(' Punctuation +'"' Literal.String +'A number please: ' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'var' Keyword.Declaration +' ' Text +'n' Name +' ' Text +'=' Operator +' ' Text +'parseInt' Name +'(' Punctuation +'readLine' Name +'(' Punctuation +'stdin' Name +')' Punctuation +')' Punctuation +'\n' Text + +'case' Keyword +' ' Text +'n' Name +'\n' Text + +'of' Keyword +' ' Text +'0' Literal.Number.Float +'..' Punctuation +'2' Literal.Number.Integer +',' Punctuation +' ' Text +'4' Literal.Number.Float +'..' Punctuation +'7' Literal.Number.Integer +':' Punctuation +' ' Text +'Echo' Name +'(' Punctuation +'"' Literal.String +'The number is in the set: {0, 1, 2, 4, 5, 6, 7}' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'of' Keyword +' ' Text +'3' Literal.Number.Integer +',' Punctuation +' ' Text +'8' Literal.Number.Integer +':' Punctuation +' ' Text +'Echo' Name +'(' Punctuation +'"' Literal.String +'The number is 3 or 8' Literal.String +'"' Literal.String +')' Punctuation +'\n\n' Text + +'Echo' Name +'(' Punctuation +'"' Literal.String +'Counting to 10: ' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'var' Keyword.Declaration +' ' Text +'i' Name +' ' Text +'=' Operator +' ' Text +'1' Literal.Number.Integer +'\n' Text + +'while' Keyword +' ' Text +'i' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'10' Literal.Number.Integer +':' Punctuation +'\n ' Text +'Echo' Name +'(' Punctuation +'$' Operator +'i' Name +')' Punctuation +'\n ' Text +'inc' Name +'(' Punctuation +'i' Name +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'yes' Name.Function +'(' Punctuation +'question' Name +':' Punctuation +' ' Text +'string' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'bool' Keyword.Type +' ' Text +'=' Operator +'\n ' Text +'Echo' Name +'(' Punctuation +'question' Name +',' Punctuation +' ' Text +'"' Literal.String +' (y/n)' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'while' Keyword +' ' Text +'true' Keyword.Pseudo +':' Punctuation +'\n ' Text +'case' Keyword +' ' Text +'readLine' Name +'(' Punctuation +'stdin' Name +')' Punctuation +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'y' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Y' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'yes' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'Yes' Literal.String +'"' Literal.String +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'true' Keyword.Pseudo +'\n ' Text +'of' Keyword +' ' Text +'"' Literal.String +'n' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'N' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'no' Literal.String +'"' Literal.String +',' Punctuation +' ' Text +'"' Literal.String +'No' Literal.String +'"' Literal.String +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'false' Keyword.Pseudo +'\n ' Text +'else' Keyword +':' Punctuation +' ' Text +'Echo' Name +'(' Punctuation +'"' Literal.String +'Please be clear: yes or no' Literal.String +'"' Literal.String +')' Punctuation +'\n\n' Text + +'proc ' Keyword +'even' Name.Function +'(' Punctuation +'n' Name +':' Punctuation +' ' Text +'int' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'bool' Keyword.Type +'\n\n' Text + +'proc ' Keyword +'odd' Name.Function +'(' Punctuation +'n' Name +':' Punctuation +' ' Text +'int' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'bool' Keyword.Type +' ' Text +'=' Operator +'\n ' Text +'if' Keyword +' ' Text +'n' Name +' ' Text +'=' Operator +'=' Operator +' ' Text +'1' Literal.Number.Integer +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'true' Keyword.Pseudo +'\n ' Text +'else' Keyword +':' Punctuation +' ' Text +'return' Keyword +' ' Text +'even' Name +'(' Punctuation +'n' Name +'-' Operator +'1' Literal.Number.Integer +')' Punctuation +'\n\n' Text + +'iterator' Keyword +' ' Text +'countup' Name +'(' Punctuation +'a' Name +',' Punctuation +' ' Text +'b' Name +':' Punctuation +' ' Text +'int' Keyword.Type +')' Punctuation +':' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'=' Operator +'\n ' Text +'var' Keyword.Declaration +' ' Text +'res' Name +' ' Text +'=' Operator +' ' Text +'a' Name +'\n ' Text +'while' Keyword +' ' Text +'res' Name +' ' Text +'<' Operator +'=' Operator +' ' Text +'b' Name +':' Punctuation +'\n ' Text +'yield' Keyword +' ' Text +'res' Name +'\n ' Text +'inc' Name +'(' Punctuation +'res' Name +')' Punctuation +'\n\n' Text + +'type' Keyword +'\n ' Text +'TPerson' Name +' ' Text +'=' Operator +' ' Text +'object' Keyword +' ' Text +'of' Keyword +' ' Text +'TObject' Name +'\n ' Text +'name' Name +'*' Operator +':' Punctuation +' ' Text +'string' Keyword.Type +' ' Text +'# the * means that `name` is accessible from other modules' Comment +'\n ' Text +'age' Name +':' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'# no * means that the field is hidden from other modules' Comment +'\n\n ' Text +'TStudent' Name +' ' Text +'=' Operator +' ' Text +'object' Keyword +' ' Text +'of' Keyword +' ' Text +'TPerson' Name +' ' Text +'# TStudent inherits from TPerson' Comment +'\n ' Text +'id' Name +':' Punctuation +' ' Text +'int' Keyword.Type +' ' Text +'# with an id field' Comment +'\n\n' Text + +'var' Keyword.Declaration +'\n ' Text +'student' Name +':' Punctuation +' ' Text +'TStudent' Name +'\n ' Text +'person' Name +':' Punctuation +' ' Text +'TPerson' Name +'\n' Text + +'assert' Name +'(' Punctuation +'student' Name +' ' Text +'is' Operator.Word +' ' Text +'TStudent' Name +')' Punctuation +'\n\n' Text + +'echo' Name +'(' Punctuation +'{' Punctuation +"'" Literal.String.Char +'a' Literal.String.Char +"'" Literal.String.Char +',' Punctuation +' ' Text +"'" Literal.String.Char +'b' Literal.String.Char +"'" Literal.String.Char +',' Punctuation +' ' Text +"'" Literal.String.Char +'c' Literal.String.Char +"'" Literal.String.Char +'}' Punctuation +'.' Punctuation +'card' Name +')' Punctuation +'\n' Text + +'stdout' Name +'.' Punctuation +'writeln' Name +'(' Punctuation +'"' Literal.String +'Hallo' Literal.String +'"' Literal.String +')' Punctuation +'\n' Text + +'var' Keyword.Declaration +'\n ' Text +'f' Name +':' Punctuation +' ' Text +'TFile' Name +'\n' Text + +'if' Keyword +' ' Text +'open' Name +'(' Punctuation +'f' Name +',' Punctuation +' ' Text +'"' Literal.String +'numbers.txt' Literal.String +'"' Literal.String +')' Punctuation +':' Punctuation +'\n ' Text +'try' Keyword +':' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'a' Name +' ' Text +'=' Operator +' ' Text +'readLine' Name +'(' Punctuation +'f' Name +')' Punctuation +'\n ' Text +'var' Keyword.Declaration +' ' Text +'b' Name +' ' Text +'=' Operator +' ' Text +'readLine' Name +'(' Punctuation +'f' Name +')' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'sum: ' Literal.String +'"' Literal.String +' ' Text +'&' Operator +' ' Text +'$' Operator +'(' Punctuation +'parseInt' Name +'(' Punctuation +'a' Name +')' Punctuation +' ' Text +'+' Operator +' ' Text +'parseInt' Name +'(' Punctuation +'b' Name +')' Punctuation +')' Punctuation +')' Punctuation +'\n ' Text +'except' Keyword +' ' Text +'EOverflow' Name +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'overflow!' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'except' Keyword +' ' Text +'EInvalidValue' Name +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'could not convert string to integer' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'except' Keyword +' ' Text +'EIO' Name +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'IO error!' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'except' Keyword +':' Punctuation +'\n ' Text +'echo' Name +'(' Punctuation +'"' Literal.String +'Unknown exception!' Literal.String +'"' Literal.String +')' Punctuation +'\n ' Text +'# reraise the unknown exception:' Comment +'\n ' Text +'raise' Keyword +'\n ' Text +'finally' Keyword +':' Punctuation +'\n ' Text +'close' Name +'(' Punctuation +'f' Name +')' Punctuation +'\n' Text |
