```coffeescript
name: "RUNOFF"
scopeName: "text.runoff"
fileTypes: [
	"rnb"
	"rnc"
	"rnd"
	"rne"
	"rnh"
	"rnl"
	"rnm"
	"rno"
	"rnp"
	"rns"
	"rnt"
	"rnx"
	"run"
]
patterns: [include: "#main"]


repository:
	
	# Common patterns
	main:
		patterns: [
			{include: "#comment"}
			{include: "#underline"}
			{include: "#commands"}
		]
	
	
	# Comment lines
	comment:
		name: "comment.line.runoff"
		begin: "^\\.!"
		end: "$"
		beginCaptures:
			0: name: "punctuation.definition.comment.runoff"

	
	# Single underlined character
	underline:
		name: "markup.underline.link.runoff"
		match: "[^_]\x08(?=_)|(?<=_)\x08[^_]"
```

Add generic highlighting for RUNOFF control-lines
user
```coffeescript
name: "RUNOFF"
scopeName: "text.runoff"
fileTypes: [
	"rnb"
	"rnc"
	"rnd"
	"rne"
	"rnh"
	"rnl"
	"rnm"
	"rno"
	"rnp"
	"rns"
	"rnt"
	"rnx"
	"run"
]
patterns: [include: "#main"]


repository:
	
	# Common patterns
	main:
		patterns: [
			{include: "#comment"}
			{include: "#underline"}
			{include: "#commands"}
		]
	
	
	# Comment lines
	comment:
		name: "comment.line.runoff"
		begin: "^\\.!"
		end: "$"
		beginCaptures:
			0: name: "punctuation.definition.comment.runoff"

	
	# Single underlined character
	underline:
		name: "markup.underline.link.runoff"
		match: "[^_]\x08(?=_)|(?<=_)\x08[^_]"


	# Control lines
	commands:
		patterns: [{
			
			name: "meta.function.runoff"
			begin: "^\x0C*((\\.)[^;\\s]+)"
			end: "$|(;)"
			beginCaptures:
				1: name: "entity.function.name.runoff"
				2: name: "punctuation.definition.macro.runoff"
			endCaptures:
				1: name: "punctuation.terminator.statement.runoff"
		}]
```
assistant