If you are using VSCode we suggest installing the YAML Extension. This extension enable suggestions and autocomplete for a custom yaml schema. PRISM provides a json file which contains the schema for the PRISM input syntax.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "PRISM Syntax",
"type": "object",
"properties": {
"bibliography": {
"type": "string",
"default": ""
},
"data-delimiter": {
"type": "string",
"default": ""
},
"data-path": {
"type": "string",
"default": ""
},
"constant-species": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"custom-species": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"mass": {
"anyOf": [
{
"type": "number",
"default": 0
},
{
"type": "array",
"items": {
"type": "number"
},
"default": []
}
]
}
},
"required": [
"name",
"mass"
],
"allOf": [
{
"anyOf": [
{
"properties": {
"name": {
"type": "string"
},
"mass": {
"type": "number"
}
}
},
{
"properties": {
"name": {
"type": "array"
},
"mass": {
"type": "array"
},
"minItems": {
"$data": "1/mass/minItems"
},
"maxItems": {
"$data": "1/mass/maxItems"
}
}
}
]
}
]
},
"default": [
{
"name": "",
"mass": 0
}
]
},
"lumped-species": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lumped": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"actual": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
}
},
"required": [
"lumped",
"actual"
]
},
"default": [
{
"lumped": "",
"actual": ""
}
]
},
"latex-overrides": {
"type": "array",
"items": {
"type": "object",
"properties": {
"species": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"latex": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
}
},
"required": [
"species",
"latex"
],
"allOf": [
{
"anyOf": [
{
"properties": {
"species": {
"type": "string"
},
"latex": {
"type": "string"
}
}
},
{
"properties": {
"species": {
"type": "array"
},
"latex": {
"type": "array"
},
"minItems": {
"$data": "1/species/minItems"
},
"maxItems": {
"$data": "1/species/maxItems"
}
}
}
]
}
]
},
"default": [
{
"species": "",
"latex": ""
}
]
},
"rate-based": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reaction": {
"type": "string",
"default": ""
},
"file": {
"type": "string"
},
"params": {
"anyOf": [
{
"type": "number",
"default": 0.0
},
{
"type": "array",
"items": {
"type": "number"
},
"default": []
}
]
},
"delta-eps-e": {
"type": "number"
},
"delta-eps-g": {
"type": "number"
},
"references": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"notes": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
}
},
"required": [
"reaction",
"references"
],
"oneOf": [
{
"required": [
"file"
],
"properties": {
"params": {
"not": {}
}
}
},
{
"required": [
"params"
],
"properties": {
"file": {
"not": {}
}
}
}
]
},
"default": [
{
"params": [],
"references": "",
"notes": ""
}
]
},
"xsec-based": {
"type": "array",
"items": {
"type": "object",
"properties": {
"reaction": {
"type": "string",
"default": ""
},
"file": {
"type": "string"
},
"params": {
"anyOf": [
{
"type": "number",
"default": 0.0
},
{
"type": "array",
"items": {
"type": "number"
},
"default": []
}
]
},
"delta-eps-e": {
"type": "number"
},
"delta-eps-g": {
"type": "number"
},
"references": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
},
"notes": {
"anyOf": [
{
"type": "string",
"default": ""
},
{
"type": "array",
"items": {
"type": "string"
},
"default": []
}
]
}
},
"required": [
"reaction",
"references"
],
"oneOf": [
{
"required": [
"file"
],
"properties": {
"params": {
"not": {}
}
}
},
{
"required": [
"params"
],
"properties": {
"file": {
"not": {}
}
}
}
]
},
"default": [
{
"params": [],
"references": "",
"notes": ""
}
]
}
},
"oneOf": [
{
"required": [
"rate-based"
]
},
{
"required": [
"xsec-based"
]
}
]
}
(../scheme.json)To enable the features of this extension you need configure your settings to allow the extension to know that this cutsom scheme exists. This is an example of how you may do this for files ending in .p
.
"yaml.schemas": {
"scheme.json": "*.p"
}