vscode-gedcom
Version:
GEDCOM file language support for VS Code
197 lines • 3.23 kB
JSON
{
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
"name": "GEDCOM",
"patterns": [
{
"include": "#line"
}
],
"scopeName": "source.gedcom",
"repository": {
"delim": {
"patterns": [
{
"match": "(\\s)",
"name": "text.gedcom"
}
]
},
"level": {
"patterns": [
{
"match": "(^\\d*)",
"name": "constant.numeric.gedcom"
},
{
"include": "#delim"
}
]
},
"line": {
"patterns": [
{
"include": "#level"
},
{
"include": "#xref"
},
{
"include": "#statement"
}
]
},
"line_name": {
"patterns": [
{
"match": "([^/]*$)",
"name": "text.gedcom"
},
{
"include": "#line_name_composite"
}
]
},
"line_name_composite": {
"patterns": [
{
"begin": "(/)",
"beginCaptures": {
"1": {
"name": "string.regexp.gedcom"
}
},
"contentName": "string.regexp.gedcom",
"end": "(/)",
"endCaptures": {
"1": {
"name": "string.regexp.gedcom"
}
}
},
{
"match": "(.)",
"name": "string.unquoted.gedcom"
}
]
},
"noop": {
"patterns": [
{
"match": "(.)",
"name": "text.gedcom"
}
]
},
"pointer": {
"patterns": [
{
"begin": "(@)",
"beginCaptures": {
"1": {
"name": "storage.type.gedcom"
}
},
"contentName": "storage.type.gedcom",
"end": "(@)",
"endCaptures": {
"1": {
"name": "storage.type.gedcom"
}
}
}
]
},
"statement": {
"patterns": [
{
"include": "#tag_name"
},
{
"include": "#tag_pointers"
},
{
"include": "#tag_line"
},
{
"include": "#pointer"
}
]
},
"tag_line": {
"patterns": [
{
"begin": "([A-Z]*)",
"beginCaptures": {
"1": {
"name": "keyword.control.gedcom"
}
},
"patterns": [
{
"include": "#noop"
}
],
"end": "(^(?=.{0,1})(?:|))",
"endCaptures": {
"1": {
"name": "text.gedcom"
}
}
}
]
},
"tag_name": {
"patterns": [
{
"begin": "(NAME)",
"beginCaptures": {
"1": {
"name": "keyword.control.gedcom"
}
},
"patterns": [
{
"include": "#line_name"
}
],
"end": "(^(?=.{0,1})(?:|))",
"endCaptures": {
"1": {
"name": "text.gedcom"
}
}
}
]
},
"tag_pointers": {
"patterns": [
{
"begin": "(FAMS|FAMC|HUSB|WIFE|CHIL|SUBM|SUMN|REPO|ALIA|ANCI|DESI|ASSO|OBJE|NOTE|SOUR)",
"beginCaptures": {
"1": {
"name": "keyword.control.gedcom"
}
},
"patterns": [
{
"include": "#pointer"
}
],
"end": "(^(?=.{0,1})(?:|))",
"endCaptures": {
"1": {
"name": "text.gedcom"
}
}
}
]
},
"xref": {
"patterns": [
{
"include": "#pointer"
}
]
}
}
}