changing background colour on the current line only

kuzn at htsc.mephi.ru kuzn at htsc.mephi.ru
Tue Apr 22 16:17:37 CEST 2008


Hi,>
> I worked for a company once which was using nedit, and had a macro which
> would toggle the background colour on the current line between normal ->
> yellow -> orange -> red -> normal.

To highlight the current line you must patch the NEdit.
See Patch Collection
http://sourceforge.net/tracker/index.php?func=detail&aid=1058246&group_id=11005&atid=311005
This patch produces highlighting you want (without the color rotating) and
many other features.

> This was really handy to tag the areas of code you were working on,
> especially when editing a few select lines within thousands of lines of
> code
> (i.e quick small bug fixes).
>
> Is this a script available somewhere? else I can't seem to find the macro
> subroutine to change the background colour.. it shouldn't be too hard to
> rewrite such a macro.. any pointers would be appreciated.
>

You can try following macros.

Cheers,
Alexey Kuznetsov

$line_marking = $empty_array
$line_marking["\n"] = $empty_array

define mark_line {
	file = $file_path $file_name
	if(!(file in $line_marking)) {
		$line_marking[file] = rangeset_create()
		$line_marking["\n"][file] = "yellow"
		rangeset_set_color($line_marking[file], $line_marking["\n"][file])
	}
	if($selection_start >= 0 && $selection_left < 0) { # Mark selection
		rangeset_add($line_marking[file])
		return
	} # Mark current line.
	rangeset_add($line_marking[file],\
					search("^", $cursor, "regex", "backward"),\
					search("$", $cursor, "regex"))
}

define unmark_line {
	file = $file_path $file_name
	if(file in $line_marking) {
		i = rangeset_includes($line_marking[file], $cursor)
		if(i) {
			range = rangeset_range($line_marking[file], i)
			rangeset_subtract($line_marking[file], range["start"], range["end"])
		}
	}
}

define rotate_color {
	file = $file_path $file_name
	if(file in $line_marking["\n"]) {
		if($line_marking["\n"][file] == "")
			$line_marking["\n"][file] = "yellow"
		else if($line_marking["\n"][file] == "yellow")
			$line_marking["\n"][file] = "orange"
		else if($line_marking["\n"][file] == "orange")
			$line_marking["\n"][file] = "red"
		else if($line_marking["\n"][file] == "red")
			$line_marking["\n"][file] = ""
		rangeset_set_color($line_marking[file], $line_marking["\n"][file])
	}
}





More information about the Discuss mailing list