 			patterns: [{include: "#params"}]
 		},{
 			
+			# Headers and footers
+			name: "meta.function.${2:/downcase}.ms.macro.roff"
+			contentName: "function-call.arguments.roff"
+			begin: "^([.'])[ \t]*([EO][FH])\\b"
+			end:   "(?<!\\\\)(?=\n)|(?=\\\\\")"
+			beginCaptures:
+				1: {name: "punctuation.definition.macro.roff"}
+				2: {name: "entity.function.name.roff"}
+			patterns: [
+				{include: "#3-part-title"}
+				{include: "#escapes"}
+				{include: "#string"}
+			]
+		},{
 			# Reference
 			name: "meta.function.reference.ms.macro.roff"
 			begin: "^([.'])[ \t]*(\\[)\\s*(\\\\\".*)?$"

				4: {name: "entity.name.function.roff"}
				5: {name: "variable.parameter.roff"}
				6: {patterns: [{include: "#params"}]}
		}]
	
	

				(ab|ad|af|bd|bp|br|c2|cc|ce|cf|ch|cs|cu|da|di|dt|ec|em|eo
				|ev|ex|fc|fi|fl|fp|ft|hc|hw|hy|ig|in|it|lc|lg|lf|ll|ls|lt
				|mc|mk|na|ne|nf|nh|nm|nn|ns|nx|os|pc|pi|pl|pm|pn|po|ps|rd
				|rm|rn|rr|rs|rt|so|sp|ss|sv|sy|ta|tc|ti|tm|tr|uf|vs|wh)"
			end: "(?<!\\\\)(?=\n)"
			beginCaptures:
				1: {name: "punctuation.definition.request.roff"}
