! 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 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.4
nedit.shellCommands: \
	spell:Alt+B:s:ED:\n\
		(cat;echo "") | spell\n\
	wc::w:ED:\n\
		wc | awk '{print $1 " lines, " $2 " words, " $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\
	LaTex:Alt+A::ADS:\n\
		latex \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)\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: Matlab:1:0{\n\
		comment:"%":"$"::Comment::\n\
		string:"'":"'":"\\n":String::\n\
		string escape chars:"\\\\(.|\\n)":::String1:string:\n\
		numeric constant:"<((0(x|X)[\\da-fA-F]*)|((\\d+\\.?\\d*)|(\\.\\d+))((e|E)(\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?>":::Numeric Const::D\n\
		special funcs:"<(find|isempty|findstr|strcmp|eval|exist|length|size|ones|zeros|eye|clear|linspace|close|delete)>":::Identifier::D\n\
		io funcs:"<(plot|load|save|fprintf|sprintf|mesh|figure|disp|legend|hist|print)>":::Identifier::D\n\
		math:"<(abs|min|max|sin|cos|exp|log|pi|sum|round|ceil|floor|sqrt|gradient)>":::Identifier::D\n\
		keyword:"<(return|goto|if|else|elseif|case|default|switch|break|continue|while|do|for|sizeof|function|end)>":::Keyword::D\n\
		braces:"[\\[{}\\]]":::Storage Type::D\n\
	}\n\
	C++:Default\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\
	Csh:Default\n\
	Makefile:Default\n\
	SGML HTML:Default\n\
	LaTeX:Default\n\
	PostScript:Default\n\
	Lex:Default\n\
	SQL:Default\n\
	VHDL:Default\n\
	Verilog:Default\n\
	NEdit Macro:Default\n\
	C:Default\n\
	McStas Instrument:1:0{\n\
		cplus comment:"//":"$"::Comment::\n\
		preprocessor cplus comment:"//":"$"::Comment:preprocessor line:\n\
		comment:"/\\*":"\\*/"::Comment::\n\
		preprocessor comment:"/\\*":"\\*/"::Comment:preprocessor line:\n\
		string:"""":"""":"\\n":String::\n\
		preprocessor line:"^[ \\t]*#":"$"::Preprocessor::\n\
		string escape chars:"\\\\(.|\\n)":::String1:string:\n\
		preprocessor escape chars:"\\\\(.|\\n)":::Preprocessor1:preprocessor line:\n\
		char constant:"'":"'":"[^\\\\][^']":Character Const::\n\
		numeric constant:"<((0(x|X)[\\da-fA-F]*)|((\\d+\\.?\\d*)|(\\.\\d+))((e|E)(\\+|-)?\\d+)?)(L|l|UL|ul|u|U|F|f)?>":::Numeric Const::D\n\
		storage keyword:"<(class|typename|typeid|template|friend|virtual|inline|explicit|operator|overload|public|private|protected|const|extern|auto|register|static|mutable|unsigned|signed|volatile|char|double|float|int|long|short|bool|wchar_t|void|typedef|struct|union|enum)>":::Storage Type::D\n\
		keyword:"<(new|delete|this|return|goto|if|else|case|default|switch|break|continue|while|do|for|catch|throw|sizeof|true|false|namespace|using|dynamic_cast|static_cast|reinterpret_cast)>":::Keyword::D\n\
		braces:"[{}]":::Keyword::D\n\
		Instrument:"<(DEFINE|INSTRUMENT|DECLARE|INITIALIZE|TRACE|FINALLY|END|MCDISPLAY)>":::Identifier::D\n\
		Component:"<(COMPONENT|DEFINITION|PARAMETERS|SETTING|POLARISATION|OUTPUT|STATE)>":::Identifier1::D\n\
	}\n\
	CSS:Default\n\
	Regex:Default\n\
	XML:Default
nedit.languageModes: 	Ada:.ada .ad .ads .adb .a:::::::\n\
	Awk:.awk:::::::\n\
	C:.c .h::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
	C++:.cc .hh .C .H .i::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
	Csh:.csh .cshrc .login .logout:"^[ \\t]*#[ \\t]*![ \\t]*/bin/csh"::::::\n\
	Fortran:.f .f77 .for .FOR .F:::::::\n\
	SGML HTML:.sgml .sgm .html .htm:"\\<(?ihtml)\\>"::::::\n\
	Java:.java:::::::\n\
	JavaScript:.js:::::::\n\
	LaTeX:.tex .sty .cls:::::::\n\
	Makefile:Makefile makefile:::::::\n\
	Matlab:.m::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
	McStas Instrument:.instr .comp:"<(DEFINE|INSTRUMENT|COMPONENT)>":::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
	NEdit Macro:.nm .neditmacro:::::::\n\
	Pascal:.pas .p .int:::::::\n\
	Perl:.pl .pm .p5 .PL:"^[ \\t]*#[ \\t]*!.*perl":Auto:None:::".,/\\\\`'!$@#%^&*()-=+{}[]"":;<>?~|":\n\
	Python:.py:"^#!.*python":Auto:None:::"!""#$%&'()*+,-./:;<=>?@[\\\\]^`{|}~":\n\
	Tcl:.tcl .tk .itcl .itk::Smart:None::::\n\
	Verilog:.v:::::::\n\
	PostScript:.ps .PS .eps .EPS .epsf .epsi:::::::\n\
	Lex:.lex:::::::\n\
	SQL:.sql:::::::\n\
	VHDL:.vhd .vhdl .vdl:::::::\n\
	Yacc:.y::::::".,/\\`'!|@#%^&*()-=+{}[]"":;<>?~":\n\
	CSS:css::Auto:None:::".,/\\`'!|@#%^&*()=+{}[]"":;<>?~":\n\
	Regex:.reg .regex:"\\(\\?[:#=!iInN].+\\)":None:Continuous::::\n\
	XML:.xml .xsl .dtd:"\\<(?i\\?xml|!doctype)"::None:::"<>/=""'()+*?|":
nedit.styles: 	Plain:black:Plain\n\
	Comment:blue:Italic\n\
	Keyword:black:Bold\n\
	Storage Type:brown:Bold\n\
	Storage Type1:saddle brown:Bold\n\
	String:darkGreen:Plain\n\
	String1:SeaGreen:Plain\n\
	String2:Green:Bold\n\
	Preprocessor:blue:Plain\n\
	Preprocessor1:Blue:Plain\n\
	Character Const:Green:Plain\n\
	Numeric Const:darkGreen:Plain\n\
	Identifier:brown:Plain\n\
	Identifier1:RoyalBlue4:Plain\n\
	Identifier2:SteelBlue: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\
	Matlab:Default
nedit.smartIndentInitCommon: Default
nedit.autoWrap: Continuous
nedit.wrapMargin: 0
nedit.autoIndent: None
nedit.autoSave: True
nedit.saveOldVersion: False
nedit.showMatching: Delimiter
nedit.matchSyntaxBased: True
nedit.highlightSyntax: True
nedit.backlightChars: False
nedit.searchDialogs: False
nedit.beepOnSearchWrap: False
nedit.retainSearchDialogs: True
nedit.searchWraps: True
nedit.stickyCaseSenseButton: True
nedit.repositionDialogs: True
nedit.appendLF: True
nedit.sortOpenPrevMenu: True
nedit.statisticsLine: True
nedit.iSearchLine: False
nedit.lineNumbers: False
nedit.pathInWindowsMenu: True
nedit.warnFileMods: True
nedit.warnRealFileMods: True
nedit.warnExit: True
nedit.searchMethod: Literal
nedit.textRows: 40
nedit.textCols: 80
nedit.tabDistance: 8
nedit.emulateTabs: 0
nedit.insertTabs: True
nedit.textFont: -adobe-courier-medium-r-normal--12-120-75-75-m-70-hp-roman8
nedit.boldHighlightFont: -adobe-courier-bold-r-normal--12-120-75-75-m-70-hp-roman8
nedit.italicHighlightFont: -adobe-courier-medium-o-normal--12-120-75-75-m-70-hp-roman8
nedit.boldItalicHighlightFont: -adobe-courier-bold-o-normal--12-120-75-75-m-70-hp-roman8
nedit.textFgColor: #000000
nedit.textBgColor: #ffffff
nedit.selectFgColor: #030303
nedit.selectBgColor: #a9d1ff
nedit.hiliteFgColor: white
nedit.hiliteBgColor: red
nedit.lineNoFgColor: black
nedit.cursorFgColor: #000000
nedit.smartTags: True
nedit.prefFileRead: True
nedit.titleFormat: {%c} [%s] %f (%S) - %d
