! Preferences file for NEdit
!
! This file is overwritten by the "Save Defaults..." command in NEdit 
! and serves only the interactively settable 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.fileVersion: 5.3
nedit.shellCommands: \
	stampbc:::WS:\n\
		stampbc %\n\
	spell:Alt+B:s:EX:\n\
		cat>spellTmp; xterm -e ispell -x spellTmp; cat spellTmp; rm spellTmp\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:Alt+Z:m:W:\n\
		make\n\
	expand::p:EX:\n\
		expand\n\
	unexpand::u:EX:\n\
		unexpand\n
nedit.macroCommands: \
	Complete Word:Alt+D::: {\n\
		# Tuning parameters\n\
		ScanDistance = 200\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 || $string_dialog_button == 0)\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<nLines; i++)\n\
			fillText = fillText line "\\n"\n\
		    fillText = fillText line\n\
		} else {\n\
		    if (nLines == 0) {\n\
		    	for (i=$selection_start; i<$selection_end; i++)\n\
		    	    fillText = fillText fillChar\n\
		    } else {\n\
		    	startIndent = 0\n\
		    	for (i=$selection_start-1; 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<nLines-1; i++)\n\
			    fillText = fillText line "\\n"\n\
			for (i=$selection_end-1; 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++:::R: {\n\
		replace_in_selection("^.*$", "// &", "regex")\n\
	}\n\
	C Comments>- C++ Comment@C++:::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]([^;#\\"'{}=><!/]|\\n)*\\\\)[ \\t]*\\n?[ \\t]*\\\\{", \\\n\
			    searchPos, "regex")\n\
		    if (headerStart == -1)\n\
			break\n\
		    headerEnd = search_string(string, ")", $search_end,"backward") + 1\n\
		    prototype = substring(string, headerStart, headerEnd) ";\\n"\n\
		    if (substring(string, headerStart, headerStart+6) == "static")\n\
			staticPrototypes = staticPrototypes prototype\n\
		    else\n\
		    			prototypes = prototypes prototype\n\
		    searchPos = headerEnd\n\
		    nDefs++\n\
		}\n\
		if (nDefs == 0) {\n\
		    dialog("No function declarations found")\n\
		    return\n\
		}\n\
		new()\n\
		focus_window("last")\n\
		replace_range(0, 0, prototypes staticPrototypes)\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: Ada:Default\n\
	Awk:Default\n\
	C++:Default\n\
	C:Default\n\
	CSS:Default\n\
	Csh:Default\n\
	Fortran:Default\n\
	Java:Default\n\
	JavaScript:Default\n\
	LaTeX:Default\n\
	Lex:Default\n\
	Makefile:Default\n\
	Matlab:Default\n\
	NEdit Macro:Default\n\
	Pascal:Default\n\
	Perl:Default\n\
	PostScript:Default\n\
	Python:Default\n\
	Regex:Default\n\
	SGML HTML:Default\n\
	SQL:Default\n\
	Sh Ksh Bash:Default\n\
	Tcl:Default\n\
	VHDL:Default\n\
	Verilog:Default\n\
	XML:Default\n\
	X Resources:Default\n\
	Yacc:Default\n\
	PBASIC:1:0{\n\
		keyword:"<(AND|BRANCH|BSAVE|BUTTON|DEBUG|DIRS|EEPROM|END|FOR|GOSUB|GOTO|HIGH|IF|INPUT|LET|LOOKDOWN|LOOKUP|LOW|MAX|MIN|N300|N600|N1200|N2400|NAP|NEXT|ON300|ON600|ON1200|ABS|ASC|BELL|BKSP|BIN|BIT|BRIGHT|BYTE|CLS|CON|COS|COUNT|CR|DATA|DCD|DEC|DIG|DIRA|DIRB|DIRC|DIRD|DIRH|DIRL|DIRS|DTMFOUT|FREQOUT|HEX|HIGHBIT|HIGHNIB|HOME|IHEX|INA|INB|INC|IND|INH|INL|INS|ISBIN|ISHEX|LIGHTSON|LOW|LOWBIT|LOWNIB|LSBFIRST|LSBPOST|LSBPRE|LSBPRE|MAX|MIN|MSBFIRST|MSBPOST|MSBPRE|NOT|NUM|OR|OUTA|OUTB|OUTC|OUTD|OUTH|OUTL|OUTPUT|OUTS|PAUSE|RCTIME|REV|PULSIN|PULSOUT|PWM|RANDOM|READ|REP|REVERSE|SBIN|SDEC|SERIN|SEROUT|SHEX|SHIFTOUT|SIN|SKIP|SLEEP|STEP|STOP|STR|SQR|TAB|TOGGLE|UNITOFF|UNITOFF|VAR|WAIT|WAITSTR|WORD|WRITE|XOR|XOUT|GET|PUT|RUN|AUXIO|I2CIN|IOTERM|LCDCMD|LCDIN|LCDOUT|MAINIO|OWIN|OWOUT|POLLIN|POLLOUT|POLEMODE|POLLRUN|POOLWAIT|PUT|RUN|STORE|and|branch|bsave|button|debug|dirs|eeprom|end|for|gosub|goto|high|if|input|let|lookdown|lookup|low|max|min|n300|n600|n1200|n2400|nap|next|on300|on600|on1200|abs|asc|bell|bksp|bin|bit|bright|byte|cls|con|cos|count|cr|data|dcd|dec|dig|dira|dirb|dirc|dird|dirh|dirl|dirs|dtmfout|freqout|hex|highbit|highnib|home|ihex|ina|inb|inc|ind|inh|inl|ins|isbin|ishex|lightson|low|lowbit|lownib|lsbfirst|lsbpost|lsbpre|lsbpre|max|min|msbfirst|msbpost|msbpre|not|num|or|outa|outb|outc|outd|outh|outl|output|outs|pause|rctime|rev|pulsin|pulsout|pwm|random|read|rep|reverse|sbin|sdec|serin|serout|shex|shiftout|sin|skip|sleep|step|stop|str|sqr|tab|toggle|unitoff|unitoff|var|wait|waitstr|word|write|xor|xout|get|put|run|auxio|i2cin|ioterm|lcdcmd|lcdin|lcdout|mainio|owin|owout|pollin|pollout|polemode|pollrun|poolwait|put|run|store|And|Branch|Bsave|Button|Debug|Dirs|Eeprom|End|For|Gosub|Goto|High|If|Input|Let|Lookdown|Lookup|Low|Max|Min|N300|N600|N1200|N2400|Nap|Next|On300|On600|On1200|Abs|Asc|Bell|Bksp|Bin|Bit|Bright|Byte|Cls|Con|Cos|Count|Cr|Data|Dcd|Dec|Dig|Dira|Dirb|Dirc|Dird|Dirh|Dirl|Dirs|Dtmfout|Freqout|Hex|Highbit|Highnib|Home|Ihex|Ina|Inb|Inc|Ind|Inh|Inl|Ins|Isbin|Ishex|Lightson|Low|Lowbit|Lownib|Lsbfirst|Lsbpost|Lsbpre|Lsbpre|Max|Min|Msbfirst|Msbpost|Msbpre|Not|Num|Or|Outa|Outb|Outc|Outd|Outh|Outl|Output|Outs|Pause|Rctime|Rev|Pulsin|Pulsout|Pwm|Random|Read|Rep|Reverse|Sbin|Sdec|Serin|Serout|Shex|Shiftout|Sin|Skip|Sleep|Step|Stop|Str|Sqr|Tab|Toggle|Unitoff|Unitoff|Var|Wait|Waitstr|Word|Write|Xor|Xout|Get|Put|Run|Auxio|I2cin|Ioterm|Lcdcmd|Lcdin|Lcdout|Mainio|Owin|Owout|Pollin|Pollout|Polemode|Pollrun|Poolwait|Put|Run|Store)>":::Keyword::\n\
	}
nedit.languageModes: 	Ada:.ada .ad .ads .adb .a::::::\n\
	Awk:.awk::::::\n\
	C++:.cc .hh .C .H .i .cxx .hxx .cpp::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\
	C:.c .h::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"\n\
	CSS:css::Auto:None:::".,/\\`'!|@#%^&*()=+{}[]"":;<>?~"\n\
	Csh:.csh .cshrc .login .logout:"^[ \\t]*#[ \\t]*![ \\t]*/bin/csh":::::\n\
	Fortran:.f .f77 .for::::::\n\
	Java:.java::::::\n\
	JavaScript:.js::::::\n\
	LaTeX:.tex .sty .cls .dtx .ins::::::\n\
	Lex:.lex::::::\n\
	Makefile:Makefile makefile .gmk:::None:8:8:\n\
	Matlab:.m .oct .sci::::::\n\
	NEdit Macro:.nm .neditmacro::::::\n\
	Pascal:.pas .p .int::::::\n\
	PBASIC:.bas .bs2 .bsp .bse .bsx:"\\$[STAMP|Stamp|stamp]":::::\n\
	Perl:.pl .pm .p5 .PL:"^[ \\t]*#[ \\t]*!.*perl":Auto:None:::".,/\\\\`'!$@#%^&*()-=+{}[]"":;<>?~|"\n\
	PostScript:.ps .eps .epsf .epsi:"^%!":::::"/%(){}[]<>"\n\
	Python:.py:"^#!.*python":Auto:None:::\n\
	Regex:.reg .regex:"\\(\\?[:#=!iInN].+\\)":None:Continuous:::\n\
	SGML HTML:.sgml .sgm .html .htm:"\\<[Hh][Tt][Mm][Ll]\\>":::::\n\
	SQL:.sql::::::\n\
	Sh Ksh Bash:.sh .bash .ksh .profile .bashrc .bash_logout .bash_login .bash_profile:"^[ \\t]*#[ \\t]*![ \\t]*/.*bin/(sh|ksh|bash)":::::\n\
	Tcl:.tcl .tk .itcl .itk::Smart:None:::\n\
	VHDL:.vhd .vhdl .vdl::::::\n\
	Verilog:.v::::::\n\
	XML:.xml .xsl .dtd:"\\<(?i\\?xml|!doctype)"::None:::"<>/=""'()+*?|"\n\
	X Resources:.Xresources .Xdefaults .nedit:"^[!#].*([Aa]pp|[Xx]).*[Dd]efaults":::::\n\
	Yacc:.y::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~"
nedit.styles: 	Plain:black:Plain\n\
	Comment:gray20:Italic\n\
	Keyword:blue:Bold\n\
	Storage Type:brown:Bold\n\
	Storage Type1:saddle brown:Bold\n\
	String:darkGreen:Plain\n\
	String1:SeaGreen:Plain\n\
	String2:darkGreen:Bold\n\
	Preprocessor:RoyalBlue4:Plain\n\
	Preprocessor1:blue:Plain\n\
	Character Const:darkGreen:Plain\n\
	Numeric Const:darkGreen:Plain\n\
	Identifier:brown:Plain\n\
	Identifier1:RoyalBlue4:Plain\n\
	Subroutine:brown:Plain\n\
	Subroutine1:chocolate:Plain\n\
	Ada Attributes:plum:Bold\n\
	Label:red:Italic\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\
	Pointer:#660000:Bold\n\
	Regex:#009944:Bold\n\
	Warning:brown2:Italic
nedit.smartIndentInit: 	C:Default\n\
	C++:Default\n\
	Python:Default\n\
	Matlab:Default
nedit.smartIndentInitCommon: Default
nedit.autoWrap: Newline
nedit.wrapMargin: 0
nedit.autoIndent: Auto
nedit.autoSave: True
nedit.saveOldVersion: False
nedit.showMatching: Delimiter
nedit.matchSyntaxBased: True
nedit.highlightSyntax: True
nedit.searchDialogs: False
nedit.beepOnSearchWrap: False
nedit.retainSearchDialogs: False
nedit.searchWraps: True
nedit.stickyCaseSenseButton: True
nedit.repositionDialogs: True
nedit.appendLF: True
nedit.sortOpenPrevMenu: True
nedit.statisticsLine: False
nedit.iSearchLine: False
nedit.lineNumbers: False
nedit.pathInWindowsMenu: True
nedit.warnFileMods: True
nedit.warnExit: True
nedit.searchMethod: Literal
nedit.textRows: 40
nedit.textCols: 80
nedit.tabDistance: 8
nedit.emulateTabs: 0
nedit.insertTabs: True
nedit.textFont: -*-courier-medium-r-normal--*-120-*-*-*-iso8859-*
nedit.boldHighlightFont: -*-courier-bold-r-normal--*-120-*-*-*-iso8859-*
nedit.italicHighlightFont: -*-courier-medium-o-normal--*-120-*-*-*-iso8859-*
nedit.boldItalicHighlightFont: -*-courier-bold-o-normal--*-120-*-*-*-iso8859-*
nedit.smartTags: True
nedit.prefFileRead: True
nedit.titleFormat: {%c} [%s] %f (%S) - %d
