! Preferences file for NEdit ! ! This file is overwritten by the "Save Defaults..." command in NEdit ! and serves only the interactively setable options presented in the NEdit ! "Preferences" menu. To modify other options, such as background colors ! and key bindings, use the .Xdefaults file in your home directory (or ! the X resource specification method appropriate to your system). The ! contents of this file can be moved into an X resource file, but since ! resources in this file override their corresponding X resources, either ! this file should be deleted or individual resource lines in the file ! should be deleted for the moved lines to take effect. nedit.shellCommands: \ spell::s:ED:\n\ (cat;echo "") | spell\n\ wc::w:ED:\n\ set wc=`wc`; echo $wc[1] "lines," $wc[2] "words," $wc[3] "characters"\n\ sort::o:EX:\n\ sort\n\ number lines::n:AW:\n\ nl -ba\n\ make::m:W:\n\ make\n\ expand::p:EX:\n\ expand\n\ unexpand::u:EX:\n\ unexpand\n nedit.macroCommands: \ Complete Word:Alt+O::: {\n\ # Tuning parameters\n\ ScanDistance = 2000\n\ \n\ # Search back to a word boundary to find the word to complete\n\ startScan = max(0, $cursor - ScanDistance)\n\ endScan = min($text_length, $cursor + ScanDistance)\n\ scanString = get_range(startScan, endScan)\n\ keyEnd = $cursor-startScan\n\ keyStart = search_string(scanString, "<", keyEnd, "backward", "regex")\n\ if (keyStart == -1)\n\ return\n\ keyString = "<" substring(scanString, keyStart, keyEnd)\n\ \n\ # search both forward and backward from the cursor position. Note that\n\ # using a regex search can lead to incorrect results if any of the special\n\ # regex characters is encountered, which is not considered a delimiter\n\ backwardSearchResult = search_string(scanString, keyString, keyStart-1, \\\n\ "backward", "regex")\n\ forwardSearchResult = search_string(scanString, keyString, keyEnd, "regex")\n\ if (backwardSearchResult == -1 && forwardSearchResult == -1) {\n\ beep()\n\ return\n\ }\n\ \n\ # if only one direction matched, use that, otherwise use the nearest\n\ if (backwardSearchResult == -1)\n\ matchStart = forwardSearchResult\n\ else if (forwardSearchResult == -1)\n\ matchStart = backwardSearchResult\n\ else {\n\ if (keyStart - backwardSearchResult <= forwardSearchResult - keyEnd)\n\ matchStart = backwardSearchResult\n\ else\n\ matchStart = forwardSearchResult\n\ }\n\ \n\ # find the complete word\n\ matchEnd = search_string(scanString, ">", matchStart, "regex")\n\ completedWord = substring(scanString, matchStart, matchEnd)\n\ \n\ # replace it in the window\n\ replace_range(startScan + keyStart, $cursor, completedWord)\n\ }\n\ Fill Sel. w/Char:::R: {\n\ if ($selection_start == -1) {\n\ beep()\n\ return\n\ }\n\ \n\ # Ask the user what character to fill with\n\ fillChar = string_dialog("Fill selection with what character?", "OK", "Cancel")\n\ if ($string_dialog_button == 2)\n\ return\n\ \n\ # Count the number of lines in the selection\n\ nLines = 0\n\ for (i=$selection_start; i<$selection_end; i++)\n\ if (get_character(i) == "\\n")\n\ nLines++\n\ \n\ # Create the fill text\n\ rectangular = $selection_left != -1\n\ line = ""\n\ fillText = ""\n\ if (rectangular) {\n\ for (i=0; i<$selection_right-$selection_left; i++)\n\ line = line fillChar\n\ for (i=0; i=0 && get_character(i)!="\\n"; i--)\n\ startIndent++\n\ for (i=0; i<$wrap_margin-startIndent; i++)\n\ fillText = fillText fillChar\n\ fillText = fillText "\\n"\n\ for (i=0; i<$wrap_margin; i++)\n\ line = line fillChar\n\ for (i=0; i=$selection_start && get_character(i)!="\\n"; \\\n\ i--)\n\ fillText = fillText fillChar\n\ }\n\ }\n\ \n\ # Replace the selection with the fill text\n\ replace_selection(fillText)\n\ }\n\ Quote Mail Reply:::: {\n\ if ($selection_start == -1)\n\ replace_all("^.*$", "\\\\> &", "regex")\n\ else\n\ replace_in_selection("^.*$", "\\\\> &", "regex")\n\ }\n\ Unquote Mail Reply:::: {\n\ if ($selection_start == -1)\n\ replace_all("(^\\\\> )(.*)$", "\\\\2", "regex")\n\ else\n\ replace_in_selection("(^\\\\> )(.*)$", "\\\\2", "regex")\n\ }\n\ C Comments>Comment Out Sel.@C@C++:::R: {\n\ selStart = $selection_start\n\ selEnd = $selection_end\n\ replace_range(selStart, selEnd, "/* " get_selection() " */")\n\ select(selStart, selEnd + 6)\n\ }\n\ C Comments>C Uncomment Sel.@C@C++:::R: {\n\ sel = get_selection()\n\ selStart = $selection_start\n\ selEnd = $selection_end\n\ commentStart = search_string(sel, "/*", 0)\n\ if (substring(sel, commentStart+2, commentStart+3) == " ")\n\ keepStart = commentStart + 3\n\ else\n\ keepStart = commentStart + 2\n\ keepEnd = search_string(sel, "*/", length(sel), "backward")\n\ commentEnd = keepEnd + 2\n\ if (substring(sel, keepEnd - 1, keepEnd == " "))\n\ keepEnd = keepEnd - 1\n\ replace_range(selStart + commentStart, selStart + commentEnd, \\\n\ substring(sel, keepStart, keepEnd))\n\ select(selStart, selEnd - (keepStart-commentStart) - \\\n\ (commentEnd - keepEnd))\n\ }\n\ C Comments>+ C++ Comment@C++:Ctrl+Plus::R: {\n\ replace_in_selection("^.*$", "// &", "regex")\n\ }\n\ C Comments>- C++ Comment@C++:Ctrl+Minus::R: {\n\ replace_in_selection("(^[ \\\\t]*// ?)(.*)$", "\\\\2", "regex")\n\ }\n\ C Comments>+ C Bar Comment 1@C:::R: {\n\ if ($selection_left != -1) {\n\ dialog("Selection must not be rectangular")\n\ return\n\ }\n\ start = $selection_start\n\ end = $selection_end-1\n\ origText = get_range($selection_start, $selection_end-1)\n\ newText = "/*\\n" replace_in_string(get_range(start, end), \\\n\ "^", " * ", "regex") "\\n */\\n"\n\ replace_selection(newText)\n\ select(start, start + length(newText))\n\ }\n\ C Comments>- C Bar Comment 1@C:::R: {\n\ selStart = $selection_start\n\ selEnd = $selection_end\n\ newText = get_range(selStart+3, selEnd-4)\n\ newText = replace_in_string(newText, "^ \\\\* ", "", "regex")\n\ replace_range(selStart, selEnd, newText)\n\ select(selStart, selStart + length(newText))\n\ }\n\ Make C Prototypes@C@C++:::: {\n\ if ($selection_start == -1) {\n\ start = 0\n\ end = $text_length\n\ } else {\n\ start = $selection_start\n\ end = $selection_end\n\ }\n\ string = get_range(start, end)\n\ nDefs = 0\n\ searchPos = 0\n\ prototypes = ""\n\ staticPrototypes = ""\n\ for (;;) {\n\ headerStart = search_string(string, \\\n\ "^[a-zA-Z]([^;#\\"'{}=> fertig Compiliert und gelinkt --> Ausfuehren\n\ if(search_string(erg, "] Error ", 0) == -1)\n\ {\n\ button = dialog(main_name " successfully compiled", "OK")\n\ return\n\ }\n\ }\n\ if (pos > length(erg)-1) {\n\ return\n\ }\n\ \n\ # Fehler suchen\n\ fehlernr_start = search_string(erg,"Error ", pos) + 6\n\ fehlernr_ende = search_string(erg,":",fehlernr_start)\n\ fehlernr = substring(erg,fehlernr_start, fehlernr_ende)\n\ #t_print(fehlernr "\\n")\n\ \n\ # Dateiname extrahieren\n\ dateiname_start = search_string(erg,"\\"", fehlernr_ende)\n\ dateiname_ende = search_string(erg,"\\"",dateiname_start+1)\n\ dateiname = substring(erg,dateiname_start+1, dateiname_ende)\n\ #t_print(dateiname "\\n")\n\ \n\ open(dateiname)\n\ focus_window(main_path dateiname)\n\ \n\ # Zeilennummer suchen\n\ zeile_start = search_string(erg, "line ", dateiname_ende) + 5\n\ zeile_ende = search_string(erg,"# ", zeile_start)\n\ zeile = substring(erg, zeile_start, zeile_ende)\n\ #t_print(zeile "\\n")\n\ \n\ # Fehlerposition suchen\n\ fehler_start = zeile_ende + 2\n\ fehler_ende = search_string(erg,"\\n", fehler_start)\n\ fehler = substring(erg, fehler_start, fehler_ende)\n\ #t_print(fehler "\\n")\n\ \n\ # Cursor zum Fehler bringen\n\ goto_line_number(zeile)\n\ \n\ # Zeile markieren\n\ beginning_of_line()\n\ zeilen_anfang = $cursor\n\ end_of_line()\n\ zeilen_ende = $cursor\n\ select(zeilen_anfang, zeilen_ende) \n\ \n\ pos = fehler_ende\n\ \n\ # Fehler anzeigen\n\ dialogstring = "Error in " dateiname ", Line " zeile ":\\n \\n"\n\ cWidth = 80\n\ i = cWidth\n\ while (i < length(fehler)) {\n\ dialogstring = dialogstring substring(fehler, i - cWidth, i) "\\n"\n\ i = i + cWidth\n\ }\n\ dialogstring = dialogstring substring(fehler, i - cWidth, length(fehler) - 1)\n\ \n\ next_pos = search_string(erg, "\\nError ", pos)\n\ if(next_pos > pos)\n\ {\n\ button = dialog(dialogstring, "Next error" , "Recompile", "Close")\n\ }\n\ else\n\ {\n\ button = dialog(dialogstring, "Recompile", "Close")\n\ # damit die Zaehlweise stimmt, es ist ja ein Button weniger\n\ if(button>0) button = button + 1\n\ }\n\ # button ist jetzt 0: Close(Abbruch), 1: naechster Fehler, 2:Recompile, 3:Abbruch\n\ \n\ }\n\ }\n\ Build (aCC)@C++:Alt+C::: {\n\ button = 2\n\ main_path = $file_path\n\ main_name = $file_name\n\ \n\ while(button != 0 && button !=3)\n\ {\n\ if (button == 2) {\n\ save()\n\ deselect_all()\n\ \n\ # Compiler aufrufen\n\ erg = shell_command("nice make","")\n\ t_print("\\n" erg "\\n")\n\ pos = 0\n\ fehlerpos_start = 0\n\ \n\ # Falls erg leer -> fertig Compiliert und gelinkt --> Ausfuehren\n\ if(search_string(erg, "] Error ", 0) == -1)\n\ {\n\ button = dialog("Program successfully compiled", "OK")\n\ return\n\ }\n\ }\n\ if (pos > length(erg)-1) {\n\ return\n\ }\n\ \n\ if (search_string(erg,"\\nError ", pos) == -1) {\n\ fehler_start = search_string(erg,"\\n/opt/aCC/lbin/ld: ", pos)\n\ if (fehler_start != -1) {\n\ fehler_ende = search_string(erg,"\\nmake:", fehler_start)\n\ fehler = substring(erg, fehler_start, fehler_ende - 1)\n\ } else {\n\ fehler = "Unknown error"\n\ }\n\ dialog(fehler, "OK")\n\ return \n\ }\n\ \n\ # Fehler suchen\n\ fehlernr_start = search_string(erg,"\\nError ", pos) + 6\n\ fehlernr_ende = search_string(erg,":",fehlernr_start)\n\ fehlernr = substring(erg,fehlernr_start, fehlernr_ende)\n\ #t_print(fehlernr "\\n")\n\ \n\ # Dateiname extrahieren\n\ dateiname_start = search_string(erg,"\\"", fehlernr_ende)\n\ dateiname_ende = search_string(erg,"\\"",dateiname_start+1)\n\ dateiname = substring(erg,dateiname_start+1, dateiname_ende)\n\ #t_print(dateiname "\\n")\n\ \n\ open(dateiname)\n\ focus_window(main_path dateiname)\n\ \n\ # Zeilennummer suchen\n\ zeile_start = search_string(erg, "line ", dateiname_ende) + 5\n\ zeile_ende = search_string(erg,"# ", zeile_start)\n\ zeile = substring(erg, zeile_start, zeile_ende)\n\ #t_print(zeile "\\n")\n\ \n\ # Fehlerposition suchen\n\ fehler_start = zeile_ende + 2\n\ fehler_ende = search_string(erg,"\\n", fehler_start)\n\ fehler = substring(erg, fehler_start, fehler_ende)\n\ #t_print(fehler "\\n")\n\ \n\ # Cursor zum Fehler bringen\n\ goto_line_number(zeile)\n\ \n\ # Zeile markieren\n\ beginning_of_line()\n\ zeilen_anfang = $cursor\n\ end_of_line()\n\ zeilen_ende = $cursor\n\ select(zeilen_anfang, zeilen_ende) \n\ \n\ pos = fehler_ende\n\ \n\ # Fehler anzeigen\n\ dialogstring = "Error in " dateiname ", Line " zeile ":\\n \\n"\n\ cWidth = 80\n\ i = cWidth\n\ while (i < length(fehler)) {\n\ dialogstring = dialogstring substring(fehler, i - cWidth, i) "\\n"\n\ i = i + cWidth\n\ }\n\ dialogstring = dialogstring substring(fehler, i - cWidth, length(fehler) - 1)\n\ \n\ next_pos = search_string(erg, "\\nError ", pos)\n\ if(next_pos > pos)\n\ {\n\ button = dialog(dialogstring, "Next error" , "Recompile", "Close")\n\ }\n\ else\n\ {\n\ button = dialog(dialogstring, "Recompile", "Close")\n\ # damit die Zaehlweise stimmt, es ist ja ein Button weniger\n\ if(button>0) button = button + 1\n\ }\n\ # button ist jetzt 0: Close(Abbruch), 1: naechster Fehler, 2:Recompile, 3:Abbruch\n\ \n\ }\n\ }\n\ LaTeX@LaTeX:::: {\n\ save()\n\ shell_command("xterm -geometry 80x50 -title LaTeX -e sh -c \\' cd " $file_path "; latex " $file_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n\ schnell LaTeX und dvips@LaTeX:Ctrl+Return::: {\n\ save()\n\ dvi_file_name = substring($file_name, 0, search_string($file_name, ".tex", 0)) ".dvi"\n\ ps_file_name = substring($file_name, 0, search_string($file_name, ".tex", 0)) ".ps"\n\ shell_command("xterm -geometry 80x50 -title LaTeX -e sh -c \\' cd " $file_path "; latex " $file_name "; dvips -o " ps_file_name " " dvi_file_name "\\'", "")\n\ }\n\ LaTeX und dvips@LaTeX:::: {\n\ save()\n\ dvi_file_name = substring($file_name, 0, search_string($file_name, ".tex", 0)) ".dvi"\n\ ps_file_name = substring($file_name, 0, search_string($file_name, ".tex", 0)) ".ps"\n\ shell_command("xterm -geometry 80x50 -title LaTeX -e sh -c \\' cd " $file_path "; latex " $file_name "; dvips -o " ps_file_name " " dvi_file_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n\ Bruchstrich@LaTeX:Alt+B::: {\n\ insert_string("\\\\frac{}{} ")\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ }\n\ math. Formel@LaTeX:Alt+0::: {\n\ insert_string("\\\\( \\\\) ")\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ }\n\ fbox@LaTeX:Alt+8::: {\n\ insert_string("\\\\fbox{\\\\( \\\\)} ")\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ backward_character()\n\ }\n\ Wurzel@LaTeX:Alt+W::: {\n\ insert_string("\\\\sqrt{} ")\n\ backward_character()\n\ backward_character()\n\ }\n\ Vektor@LaTeX:Alt+V::: {\n\ insert_string("\\\\vec ")\n\ }\n\ partial@LaTeX:Alt+R::: {\n\ insert_string("\\\\partial ")\n\ }\n\ sinus@LaTeX:Alt+S::: {\n\ insert_string("\\\\sin ")\n\ }\n\ cosinus@LaTeX:Alt+C::: {\n\ insert_string("\\\\cos ")\n\ }\n\ tangens@LaTeX:Alt+T::: {\n\ insert_string("\\\\tan ")\n\ }\n\ alpha@LaTeX:Shift+Alt+A::: {\n\ insert_string("\\\\alpha ")\n\ }\n\ beta@LaTeX:Shift+Alt+B::: {\n\ insert_string("\\\\beta ")\n\ }\n\ nach@LaTeX:Alt+D::: {\n\ insert_string("\\\\nach ")\n\ }\n\ plusminus@LaTeX:Alt+Plus::: {\n\ insert_string("\\\\pm ")\n\ }\n\ minusplus@LaTeX:Alt+Minus::: {\n\ insert_string("\\\\mp ")\n\ }\n\ Zeilenumbruch@LaTeX:Alt+Return::: {\n\ insert_string(" \\\\\\\\\\n")\n\ }\n\ Compile Oberon@Oberon:Alt+C:o:: {\n\ button = 2\n\ main_path = $file_path\n\ main_name = $file_name\n\ \n\ while(button != 0 && button !=3)\n\ {\n\ if (button == 2) {\n\ save()\n\ deselect_all()\n\ \n\ # Compiler aufrufen\n\ erg = shell_command("cd " main_path "; o2c -M `basename " main_name " .Mod`","")\n\ erg2 = shell_command("cd " main_path "; o2ef -l",erg) # um Zeilennummer zu erhalten\n\ pos = 0\n\ fehlerpos_start = 0\n\ \n\ # Falls erg leer -> fertig Compiliert und gelinkt --> Ausfuehren\n\ if(erg == "")\n\ {\n\ programm_name = substring(main_name, 0, search_string(main_name, ".Mod", 0))\n\ button = dialog("Compilierung erfolgreich abgeschlossen", "OK", "Run " programm_name)\n\ if (button == 2) {\n\ shell_command("kvt -e sh -c \\'" programm_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n\ }\n\ }\n\ if (pos > length(erg)-1) {\n\ return\n\ }\n\ \n\ # Dateiname extrahieren\n\ dateiname_start = search_string(erg2,"/",pos)\n\ dateiname_ende = search_string(erg2,":",dateiname_start)\n\ dateiname = substring(erg2,dateiname_start+1, dateiname_ende)\n\ \n\ # hat das File eine Endung .Mod? Sonst gcc/Linker Fehler\n\ # if(shell_command("if [[ -a " dateiname " ]] then echo 1;fi","") != 1)\n\ if(search_string(dateiname,".Mod",0) == -1)\n\ {\n\ # Datei hat nicht Endung .Mod, also nur Fehlermeldung ausgeben\n\ dialogstring = erg\n\ dialog(dialogstring, "Abbruch")\n\ return\n\ }\n\ else\n\ {\n\ # richtiges Fenster aktivieren. Falls Pfad mit in dateiname --> / vorne anfuegen\n\ if(search_string(dateiname,"/",0) == -1)\n\ {\n\ open(main_path dateiname)\n\ focus_window(main_path dateiname)\n\ }\n\ else\n\ {\n\ open("/" dateiname)\n\ focus_window("/" dateiname)\n\ }\n\ button = 1\n\ }\n\ \n\ # Zeilennummer suchen\n\ zeile_start = dateiname_ende+1\n\ zeile_ende = search_string(erg2,":", zeile_start)\n\ zeile = substring(erg2, zeile_start, zeile_ende)\n\ \n\ # Fehlerposition suchen\n\ fehlerpos_start = search_string(erg,"\\n", fehlerpos_start) + 1\n\ fehlerpos_ende = search_string(erg," ", fehlerpos_start)\n\ fehlerpos = substring(erg, fehlerpos_start, fehlerpos_ende)\n\ \n\ # Fehler suchen\n\ fehlerstart = search_string(erg2," ", zeile_ende) + 1\n\ fehlerende = search_string(erg2,"\\n",fehlerstart)\n\ fehler = substring(erg2,fehlerstart, fehlerende)\n\ \n\ # Cursor zum Fehler bringen\n\ set_cursor_pos(fehlerpos) \n\ \n\ # Zeile markieren\n\ beginning_of_line()\n\ zeilen_anfang = $cursor\n\ end_of_line()\n\ zeilen_ende = $cursor\n\ set_cursor_pos(fehlerpos) \n\ select(zeilen_anfang, zeilen_ende) \n\ \n\ pos = fehlerende\n\ \n\ # Fehler anzeigen\n\ dialogstring = "Fehler in " dateiname ", Zeile " zeile "\\n \\n" fehler\n\ if(pos < length(erg2)-1)\n\ {\n\ button = dialog(dialogstring, "Naechster Fehler" , "Recompile", "Abbruch")\n\ }\n\ else\n\ {\n\ button = dialog(dialogstring, "Recompile", "Abbruch")\n\ # damit die Zaehlweise stimmt, es ist ja ein Button weniger\n\ if(button>0) button = button + 1\n\ }\n\ # button ist jetzt 0: Close(Abbruch), 1: naechster Fehler, 2:Recompile, 3:Abbruch\n\ \n\ }\n\ }\n\ Run Program@Oberon:Alt+R::: {\n\ programm_name = substring($file_name, 0, search_string($file_name, ".Mod", 0))\n\ shell_command("kvt -e sh -c \\'" programm_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n\ Compile Java@Java:Alt+C:o:: {\n\ button = 2\n\ main_path = $file_path\n\ main_name = $file_name\n\ \n\ while(button != 0 && button !=3)\n\ {\n\ if (button == 2) {\n\ save()\n\ deselect_all()\n\ \n\ # Compiler aufrufen\n\ erg = shell_command("cd " main_path "; javac " main_name,"")\n\ pos = 0\n\ fehlerpos_start = 0\n\ \n\ # Falls erg leer -> fertig Compiliert und gelinkt --> Ausfuehren\n\ if(erg == "")\n\ {\n\ programm_name = substring(main_name, 0, search_string(main_name, ".java", 0))\n\ button = dialog("Compilierung erfolgreich abgeschlossen", "OK", "Run " programm_name)\n\ if (button == 2) {\n\ shell_command("kvt -e sh -c \\'java " programm_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n\ return\n\ } else {\n\ end_of_errors = search_string(erg, "\\n", length(erg)-2, "backward")\n\ number_of_errors = substring(erg, end_of_errors+1, search_string(erg," ",end_of_errors))\n\ actual_error = 1\n\ }\n\ }\n\ if (pos > length(erg)-1) {\n\ return\n\ }\n\ \n\ # Dateiname extrahieren\n\ dateiname_start = search_string(erg,"/",pos)+1\n\ # dateiname_start = pos\n\ dateiname_ende = search_string(erg,":",dateiname_start)\n\ dateiname = substring(erg, dateiname_start, dateiname_ende)\n\ \n\ # hat das File eine Endung .java? Sonst seltsamer Fehler\n\ # if(shell_command("if [[ -a " dateiname " ]] then echo 1;fi","") != 1)\n\ if(search_string(dateiname,".java",0) == -1)\n\ {\n\ # Datei hat nicht Endung .java, also nur Fehlermeldung ausgeben\n\ dialogstring = erg\n\ dialog(dialogstring, "Abbruch")\n\ return\n\ }\n\ else\n\ {\n\ # richtiges Fenster aktivieren. Falls Pfad mit in dateiname --> / vorne anfuegen\n\ if(search_string(dateiname,"/",0) == -1)\n\ {\n\ open(main_path dateiname)\n\ focus_window(main_path dateiname)\n\ }\n\ else\n\ {\n\ open("/" dateiname)\n\ focus_window("/" dateiname)\n\ }\n\ button = 1\n\ }\n\ \n\ # Zeilennummer suchen\n\ zeile_start = dateiname_ende+1\n\ zeile_ende = search_string(erg,":", zeile_start)\n\ zeile = substring(erg, zeile_start, zeile_ende)\n\ \n\ # Fehler suchen\n\ fehlerstart = search_string(erg," ", zeile_ende) + 1\n\ fehlerende = search_string(erg,"\\n",fehlerstart)\n\ fehler = substring(erg, fehlerstart, fehlerende)\n\ \n\ # Fehlerposition suchen\n\ fehlerpos_start = search_string(erg,"\\n", fehlerende + 1) + 1\n\ fehlerpos = search_string(erg,"^", fehlerpos_start) - fehlerpos_start \n\ \n\ # Cursor zum Fehler bringen\n\ goto_line_number(zeile)\n\ \n\ # Zeile markieren\n\ beginning_of_line()\n\ zeilen_anfang = $cursor\n\ find("\\n")\n\ zeilen_ende = $cursor\n\ set_cursor_pos(fehlerpos) \n\ select(zeilen_anfang, zeilen_ende+1) \n\ set_cursor_pos(zeilen_anfang + fehlerpos)\n\ \n\ pos = search_string(erg,"\\n",fehlerpos_start) + 1\n\ \n\ # Fehler anzeigen\n\ dialogstring = "Fehler " actual_error " von " number_of_errors " in " dateiname ", Zeile " zeile ":\\n \\n" fehler\n\ if(pos < end_of_errors)\n\ {\n\ button = dialog(dialogstring, "Naechster Fehler" , "Recompile", "Abbruch")\n\ }\n\ else\n\ {\n\ button = dialog(dialogstring, "Recompile", "Abbruch")\n\ # damit die Zaehlweise stimmt, es ist ja ein Button weniger\n\ if(button>0) button = button + 1\n\ }\n\ # button ist jetzt 0: Close(Abbruch), 1: naechster Fehler, 2:Recompile, 3:Abbruch\n\ actual_error = actual_error + 1\n\ }\n\ }\n\ Run Program@Java:Alt+R::: {\n\ programm_name = substring($file_name, 0, search_string($file_name, ".java", 0))\n\ shell_command("kvt -e sh -c \\'java " programm_name "; echo \\"*** Press to close window ***\\"; read\\'", "")\n\ }\n nedit.bgMenuCommands: \ Undo:::: {\n\ undo()\n\ }\n\ Redo:::: {\n\ redo()\n\ }\n\ Cut:::R: {\n\ cut_clipboard()\n\ }\n\ Copy:::R: {\n\ copy_clipboard()\n\ }\n\ Paste:::: {\n\ paste_clipboard()\n\ }\n nedit.highlightPatterns: C:Default\n\ C++:1:0{\n\ comment:"/\\*":"\\*/"::Comment::\n\ cplus comment:"//":"$"::Comment::\n\ string:"""":"""":"\\n":String::\n\ preprocessor line:"^[ ]*#":"$"::Preprocessor::\n\ string escape chars:"\\\\(.|\\n)":::String1:string:\n\ preprocessor esc chars:"\\\\(.|\\n)":::Preprocessor1:preprocessor line:\n\ preprocessor comment:"/\\*":"\\*/"::Comment:preprocessor line:\n\ preproc cplus comment:"//":"$"::Comment:preprocessor line:\n\ character constant:"'":"'":"[^\\\\][^']":Character Const::\n\ numeric constant:"<((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?>":::Numeric Const::D\n\ storage keyword:"<(new|delete|typename|typeid|dynamic_cast|static_cast|reinterpret_cast|const|extern|auto|register|static|mutable|volatile)>":::Keyword::D\n\ operator:"(&&|&|\\|\\||\\||-|\\+|\\*|/|\\>|\\<|!|=|:)":::Subroutine1::D\n\ default data type:"<(unsigned|signed|char|double|float|int|long|short|bool|wchar_t|void)>":::Storage Type::D\n\ user data type:"<(class|template|struct|union|enum|typedef)>":::User Data Type::D\n\ keyword:"<(this|return|goto|if|else|case|default|switch|break|continue|while|do|for|catch|throw|public|private|protected|sizeof|true|false|namespace|using|friend|explicit|operator|overload)>":::Keyword::D\n\ braces:"[{}]":::Keyword::D\n\ }\n\ Java:Default\n\ JavaScript:Default\n\ Ada:Default\n\ Fortran:Default\n\ Pascal:Default\n\ Yacc:Default\n\ Perl:Default\n\ Python:Default\n\ Awk:Default\n\ Tcl:Default\n\ Sh Ksh Bash:Default\n\ Csh:Default\n\ Makefile:Default\n\ HTML:Default\n\ LaTeX:Default\n\ VHDL:Default\n\ Verilog:Default\n\ NEdit Macro:Default\n\ Oberon:1:0{\n\ predeclared procedures:"<(ABS|ASH|CAP|CHR|COPY|DEC|ENTIER|EXCL|HALT|INC|INCL|LEN|LONG|MAX|MIN|NEW|ODD|ORD|SHORT|SIZE|^CORD|LONGR$|LONGI$|SHORTI$)>":::Subroutine1::\n\ predeclared modules:"<(CharInfo|ConvTypes|CType|Dos|error|FileInbin|FileIn|Filenames|FileOutbin|FileOut|Files|FIn|FOut|IntStr|In|IpcIn|IpcOut|MathL|Math|MUtilities|Out|RandomNumbers|RealStr|Redir|Rts|Screen|Strings2|Strings|Time|Types|Unix|UpdateLib|X11|Xresource|Xutil|XYplane)>":::Predeclared modules::\n\ comment:"\\(\\*":"\\*\\)"::Comment::\n\ keyword:"<(FOR|TO|DO|WHILE|REPEAT|UNTIL|LOOP|BY|IN|IS|WITH|MOD|DIV|IF|ELSE|ELSIF|CASE|THEN|RETURN|EXIT|OR)>":::Keyword::D\n\ braces:"":::Keyword::\n\ string1:"""":"""":"\\n":String::\n\ string2:"'":"'":"\\n":String::\n\ numeric constant:"<((([0-9]|A|B|C|D|E|F)+H)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((D|E)(\\+|-)?[0-9]+)?)>":::Numeric Const::D\n\ character constant:"<([0-9]+X)>":::Character Const::\n\ boolean constant:"<(TRUE|FALSE)>":::Boolean Const::\n\ NIL:"":::Numeric Const::\n\ procedure:"":::Subroutine::\n\ default data types:"<(INTEGER|SHORTINT|LONGINT|REAL|LONGREAL|CHAR|BOOLEAN|POINTER( |\\t)*TO|ARRAY|OF)>":::Storage Type::\n\ user data types:"<(RECORD|SET)>":::User Data Type::\n\ main keyword:"<(IMPORT|VAR|TYPE|CONST)>":::Keyword1::\n\ } nedit.languageModes: C:.c::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\ C++:.cpp .cc .hh .C .h .H .i::Smart::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\ Oberon:.Mod::Smart::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\ Java:.java::::::\n\ JavaScript:.js::::::\n\ Ada:.ada .ad .ads .adb .a::::::\n\ Fortran:.f .f77 .for::::::\n\ Pascal:.pas .p .int::::::\n\ Yacc:.y::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\ Perl:.pl .pm .p5:"^[ \\t]*#[ \\t]*!.*perl":::::\n\ Python:.py:"^#!.*python":Auto:None:::\n\ Tcl:.tcl::::::\n\ Awk:.awk::::::\n\ Sh Ksh Bash:.sh .bash .ksh .profile:"^[ \\t]*#[ \\t]*![ \\t]*/bin/(sh|ksh|bash)":::::\n\ Csh:.csh .cshrc .login .logout:"^[ \\t]*#[ \\t]*![ \\t]*/bin/csh":::::\n\ Makefile:Makefile makefile::::::\n\ HTML:.html .htm::::::\n\ LaTeX:.tex .sty .cls .dtx .ins::::::\n\ VHDL:.vhd .vhdl .vdl::::::\n\ Verilog:.v::::::\n\ X Resources:.Xresources .Xdefaults .nedit:"^[!#].*([Aa]pp|[Xx]).*[Dd]efaults":::::\n\ NEdit Macro:.nm .neditmacro:::::: nedit.styles: Plain:black:Plain\n\ Comment:gray20:Italic\n\ Keyword:black:Bold\n\ Storage Type:brown:Bold\n\ String:red:Plain\n\ String1:SeaGreen:Plain\n\ String2:darkGreen:Bold\n\ Preprocessor:RoyalBlue4:Bold\n\ Preprocessor1:blue:Plain\n\ Character Const:red:Plain\n\ Numeric Const:green3:Plain\n\ Identifier:brown:Plain\n\ Identifier1:blue:Plain\n\ Subroutine:blue:Bold\n\ Subroutine1:slate blue:Bold\n\ Ada Attributes:plum:Bold\n\ Flag:red:Bold\n\ Text Comment:SteelBlue4:Italic\n\ Text Key:VioletRed4:Bold\n\ Text Key1:VioletRed4:Plain\n\ Text Arg:RoyalBlue4:Bold\n\ Text Arg1:SteelBlue4:Bold\n\ Text Arg2:RoyalBlue4:Plain\n\ Text Escape:gray30:Bold\n\ LaTeX Math:darkGreen:Plain\n\ Keyword1:lime green:Bold\n\ Boolean Const:brown:Plain\n\ Predeclared modules:darkgreen:Bold\n\ User Data Type:blue:Bold nedit.smartIndentInit: C: # C Macros and tuning parameters are shared with C++, and are declared\n\ # in the common section. Press Common / Shared Initialization above.\n\ \n\ $cIndentDist = 3\n\ $cContinuationIndent = 3\n\ --End-of-Macro--\n\ return cFindSmartIndentDist($1)\n\ --End-of-Macro--\n\ if ($2 == "}" || $2 == "{" || $2 == "#")\n\ cBraceOrPound($1, $2)\n\ --End-of-Macro--\n\ C++: # C++ Macros and tuning parameters are shared with C, and are declared\n\ # in the common section. Press Common / Shared Initialization above.\n\ \n\ $cIndentDist = 3\n\ $cContinuationIndent = 3\n\ --End-of-Macro--\n\ return cFindSmartIndentDist($1)\n\ --End-of-Macro--\n\ if ($2 == "}" || $2 == "{" || $2 == "#")\n\ cBraceOrPound($1, $2)\n\ --End-of-Macro--\n\ Oberon: $cIndentDist = 3\n\ $cContinuationIndent = 3\n\ \n\ define cFindEND {\n\ # Find END\n\ if ($2 != "D") {\n\ return -1\n\ } else if ($1-1 < 0 || get_character($1-1) != "N") {\n\ return -1\n\ } else if ($1-2 < 0 || get_character($1-2) != "E") {\n\ return -1\n\ }\n\ return 0\n\ }\n\ \n\ define cFindELSE {\n\ # Find ELSE\n\ if ($2 != "E") {\n\ return -1\n\ } else if ($1-1 < 0 || get_character($1-1) != "S") {\n\ return -1\n\ } else if ($1-2 < 0 || get_character($1-2) != "L") {\n\ return -1\n\ } else if ($1-3 < 0 || get_character($1-3) != "E") {\n\ return -1\n\ }\n\ return 0\n\ }\n\ \n\ define cFindELSIF {\n\ # Find ELSIF\n\ if ($2 != "F") {\n\ return -1\n\ } else if (($1-1 < 0) || get_character($1-1) != "I") {\n\ return -1\n\ } else if ($1-2 < 0 || get_character($1-2) != "S") {\n\ return -1\n\ } else if ($1-3 < 0 || get_character($1-3) != "L") {\n\ return -1\n\ } else if ($1-4 < 0 || get_character($1-4) != "E") {\n\ return -1\n\ }\n\ return 0\n\ }\n\ \n\ define cEND {\n\ \n\ if (cFindEND($1, $2) == -1)\n\ if (cFindELSE($1, $2) == -1)\n\ if (cFindELSIF($1, $2) == -1)\n\ return\n\ else\n\ l = 5\n\ else \n\ l = 4\n\ else\n\ l = 3\n\ \n\ # Find start of the line, and make sure there's nothing but white-space\n\ # before END. If there's anything before it, do nothing\n\ for (i=$1-l; ; i--) {\n\ if (i < 0) {\n\ lineStart = 0\n\ break\n\ }\n\ c = get_character(i)\n\ if (c == "\\n") {\n\ lineStart = i + 1\n\ break\n\ }\n\ if (c != " " && c != "\\t") {\n\ if (c != ";") {\n\ doubleIndent = 1\n\ }\n\ return\n\ }\n\ }\n\ \n\ # Find the position on which to base the indent\n\ for (i=lineStart; ; i--) {\n\ if (i < 0) {\n\ indent = 0\n\ break\n\ }\n\ c = get_character(i)\n\ if (c != " " && c != "\\t" && c != "\\n") {\n\ indent = measureIndent(i) - defaultIndent($cIndentDist)\n\ break\n\ }\n\ }\n\ \n\ if (indent < 0)\n\ indent = 0\n\ \n\ # Replace the current indent with the new indent string\n\ insertStr = makeIndentString(indent)\n\ replace_range(lineStart, $1-l+1, insertStr)\n\ }\n\ \n\ \n\ define cNewline {\n\ for (i=$1-1;;i--) {\n\ if (i < 0)\n\ return 0\n\ else \n\ c = get_character(i)\n\ if (c == ";")\n\ return measureIndent(i)\n\ else if (c != " " && c != "\\t" && c != "\\n")\n\ return measureIndent(i) + $cIndentDist\n\ }\n\ }\n\ --End-of-Macro--\n\ return cNewline($1)\n\ --End-of-Macro--\n\ cEND($1, $2)\n\ --End-of-Macro-- nedit.smartIndentInitCommon: Default nedit.autoWrap: None nedit.wrapMargin: 0 nedit.autoIndent: None nedit.autoSave: True nedit.saveOldVersion: False nedit.showMatching: True nedit.highlightSyntax: True nedit.searchDialogs: False nedit.retainSearchDialogs: False nedit.repositionDialogs: True nedit.statisticsLine: True nedit.searchMethod: Literal nedit.textRows: 40 nedit.textCols: 80 nedit.tabDistance: 3 nedit.emulateTabs: 3 nedit.insertTabs: False nedit.textFont: -adobe-courier-medium-r-normal--14-*-*-*-*-*-*-1 nedit.boldHighlightFont: -adobe-courier-bold-r-normal--14-*-*-*-*-*-*-1 nedit.italicHighlightFont: -adobe-courier-medium-o-normal--14-*-*-*-*-*-*-1 nedit.boldItalicHighlightFont: -adobe-courier-bold-o-normal--14-*-*-*-*-*-*-1