mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
name: "Spline Font Database"
 | 
						|
scopeName: "text.sfd"
 | 
						|
fileTypes: ["sfd"]
 | 
						|
firstLineMatch: "^SplineFontDB: [\\d.]+"
 | 
						|
patterns: [include: "#main"]
 | 
						|
 | 
						|
repository:
 | 
						|
	main:
 | 
						|
		patterns: [
 | 
						|
			{include: "#punctuation"}
 | 
						|
			{include: "#private"}
 | 
						|
			{include: "#image"}
 | 
						|
			{include: "#pickleData"}
 | 
						|
			{include: "#sections"}
 | 
						|
			{include: "#copyright"}
 | 
						|
			{include: "#property"}
 | 
						|
			{include: "#control"}
 | 
						|
			{include: "#address"}
 | 
						|
			{include: "#encoding"}
 | 
						|
			{include: "source.fontforge#shared"}
 | 
						|
			{include: "#colour"}
 | 
						|
		]
 | 
						|
	
 | 
						|
	punctuation:
 | 
						|
		patterns: [
 | 
						|
			{match: "<|>",  name: "punctuation.definition.brackets.angle.sfd"}
 | 
						|
			{match: "[{}]", name: "punctuation.definition.brackets.curly.sfd"}
 | 
						|
		]
 | 
						|
 | 
						|
	private:
 | 
						|
		name: "meta.section.private.sfd"
 | 
						|
		begin: "^BeginPrivate(?=:)"
 | 
						|
		end:   "^EndPrivate\\b"
 | 
						|
		beginCaptures: 0: name: "keyword.control.begin.private.sfd"
 | 
						|
		endCaptures:   0: name: "keyword.control.end.private.sfd"
 | 
						|
		patterns: [
 | 
						|
			{match: "^\\S+", name: "entity.name.private.property.sfd"}
 | 
						|
			{include: "$self"}
 | 
						|
		]
 | 
						|
	
 | 
						|
	image:
 | 
						|
		name: "meta.image.sfd"
 | 
						|
		begin: "^(Image)(?=:)(.+)$"
 | 
						|
		end:   "^(EndImage)\\b"
 | 
						|
		contentName: "string.unquoted.raw.data.sfd"
 | 
						|
		beginCaptures:
 | 
						|
			1: name: "keyword.control.begin.image.sfd"
 | 
						|
			2: patterns: [include: "$self"]
 | 
						|
		endCaptures:
 | 
						|
			1: name: "keyword.control.end.image.sfd"
 | 
						|
 | 
						|
	pickleData:
 | 
						|
		name: "meta.pickle-data.sfd"
 | 
						|
		begin: "^(PickledData)(:)\\s*(\")"
 | 
						|
		end:   '"'
 | 
						|
		beginCaptures:
 | 
						|
			1: name: "entity.name.property.sfd"
 | 
						|
			2: name: "punctuation.separator.dictionary.key-value.sfd"
 | 
						|
			3: name: "punctuation.definition.string.begin.sfd"
 | 
						|
		endCaptures:
 | 
						|
			0: name: "punctuation.definition.string.end.sfd"
 | 
						|
		patterns: [match: "\\\\.", name: "constant.character.escape.sfd"]
 | 
						|
 | 
						|
	sections:
 | 
						|
		name: "meta.section.${2:/downcase}.sfd"
 | 
						|
		begin: "^(Start|Begin)([A-Z]\\w+)(?=:)"
 | 
						|
		end:   "^(End\\2)\\b"
 | 
						|
		beginCaptures: 0: name: "keyword.control.begin.${2:/downcase}.sfd"
 | 
						|
		endCaptures:   0: name: "keyword.control.end.${2:/downcase}.sfd"
 | 
						|
		patterns: [include: "$self"]
 | 
						|
 | 
						|
	control:
 | 
						|
		name: "keyword.control.${1:/downcase}.sfd"
 | 
						|
		match: "\\b(Fore|Back|SplineSet|^End\\w+)\\b"
 | 
						|
 | 
						|
	colour:
 | 
						|
		name: "constant.other.hex.colour.sfd"
 | 
						|
		match: "(#)[A-Fa-f0-9]{3,}|(?<=\\s)[A-Fa-f0-9]{6,8}"
 | 
						|
		captures:
 | 
						|
			1: name: "punctuation.definition.colour.sfd"
 | 
						|
 | 
						|
	encoding:
 | 
						|
		name: "constant.language.encoding.sfd"
 | 
						|
		match: "(?i)\\b(ISO[-\\w]+)(?<=\\d)(?=\\s|$)"
 | 
						|
 | 
						|
	# Don't highlight numbers in freeform strings (years/version strings)
 | 
						|
	copyright:
 | 
						|
		name: "meta.${1:/downcase}-string.sfd"
 | 
						|
		begin: "^(Copyright|U?Comments?|\\w+Name)(:)"
 | 
						|
		end:   "$"
 | 
						|
		beginCaptures:
 | 
						|
			1: name: "entity.name.property.sfd"
 | 
						|
			2: name: "punctuation.separator.dictionary.key-value.sfd"
 | 
						|
		patterns: [include: "source.fontforge#stringEscapes"]
 | 
						|
	
 | 
						|
	# No idea what this is, but it looks distracting without a fix
 | 
						|
	# Assuming it's referring to a memory register or something.
 | 
						|
	address:
 | 
						|
		match: "\\d+[xX][A-Fa-f0-9]+"
 | 
						|
		name: "constant.numeric.hexadecimal.sfd"
 | 
						|
	
 | 
						|
	property:
 | 
						|
		match: "^([^:]+)(:)"
 | 
						|
		name: "meta.dictionary.key-value.sfd"
 | 
						|
		captures:
 | 
						|
			1: name: "entity.name.property.sfd"
 | 
						|
			2: name: "punctuation.separator.dictionary.key-value.sfd"
 | 
						|
	
 |