83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
{
 | 
						|
	"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
 | 
						|
	"name": "phi",
 | 
						|
	"patterns": [
 | 
						|
        { "include": "#comments" },
 | 
						|
		{ "include": "#keywords" },
 | 
						|
		{ "include": "#operators" },
 | 
						|
		{ "include": "#numbers" },
 | 
						|
		{ "include": "#strings" },
 | 
						|
		{ "include": "#idents" }
 | 
						|
	],
 | 
						|
	"repository": {
 | 
						|
        "comments": {
 | 
						|
            "patterns": [
 | 
						|
                {
 | 
						|
                    "name": "comment.line.phi",
 | 
						|
                    "begin": "//",
 | 
						|
                    "end": "\\n"
 | 
						|
                }
 | 
						|
            ]
 | 
						|
        },
 | 
						|
		"keywords": {
 | 
						|
			"patterns": [
 | 
						|
				{
 | 
						|
					"name": "keyword.control.phi",
 | 
						|
					"match": "\\b(fn|return|loop|for|break|if|do|call)\\b"
 | 
						|
				},
 | 
						|
				{
 | 
						|
					"name": "storage.type.phi",
 | 
						|
					"match": "\\b(let)\\b"
 | 
						|
				},
 | 
						|
				{
 | 
						|
					"name": "keyword.operator.phi",
 | 
						|
					"match": "\\b(and|or|not)\\b"
 | 
						|
				},
 | 
						|
				{
 | 
						|
					"name": "constant.phi",
 | 
						|
					"match": "\\b(null|true|false)\\b"
 | 
						|
				}
 | 
						|
			]
 | 
						|
		},
 | 
						|
		"operators": {
 | 
						|
			"patterns": [
 | 
						|
				{
 | 
						|
					"name": "keyword.operator.phi",
 | 
						|
                    "match": "\\+|\\-|\\*|\\/|=|(\\+=)|(\\-=)|(==)|(!=)|<|>|(<=)|(>=)"
 | 
						|
				}
 | 
						|
			]
 | 
						|
		},
 | 
						|
		"numbers": {
 | 
						|
			"patterns": [
 | 
						|
                {
 | 
						|
                    "name": "constant.numeric.phi",
 | 
						|
                    "match": "\\b0\\b"
 | 
						|
                },
 | 
						|
                {
 | 
						|
                    "name": "constant.numeric.phi",
 | 
						|
                    "match": "\\b[1-9][0-9]*(\\.[0-9]+)?\\b"
 | 
						|
                }
 | 
						|
			]
 | 
						|
		},
 | 
						|
		"strings": {
 | 
						|
			"name": "string.quoted.double.phi",
 | 
						|
			"begin": "\"",
 | 
						|
			"end": "\"",
 | 
						|
			"patterns": [
 | 
						|
				{
 | 
						|
					"name": "constant.character.escape.phi",
 | 
						|
					"match": "\\\\."
 | 
						|
				}
 | 
						|
			]
 | 
						|
		},
 | 
						|
		"idents": {
 | 
						|
			"patterns": [
 | 
						|
				{
 | 
						|
					"name": "variable.phi",
 | 
						|
					"match": "\\b[a-zA-Z0-9_]+\\b"
 | 
						|
				}
 | 
						|
			]
 | 
						|
		}
 | 
						|
	},
 | 
						|
	"scopeName": "source.phi"
 | 
						|
} |