Add language support and grammar for Fenn
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
.direnv/
|
.direnv/
|
||||||
.vscode/
|
|
||||||
extension.js
|
extension.js
|
||||||
node_modules/
|
node_modules/
|
||||||
|
13
.vscode/launch.json
vendored
Normal file
13
.vscode/launch.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Extension",
|
||||||
|
"type": "extensionHost",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"--extensionDevelopmentPath=${workspaceFolder}"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
import { ExtensionContext } from "vscode";
|
import { ExtensionContext } from "vscode";
|
||||||
|
|
||||||
export function activate(context: ExtensionContext) { }
|
export function activate(_context: ExtensionContext) { }
|
||||||
|
|
||||||
export function deactivate() { }
|
export function deactivate() { }
|
||||||
|
31
fenn.json
Normal file
31
fenn.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"comments": {
|
||||||
|
"lineComment": "#"
|
||||||
|
},
|
||||||
|
"brackets": [
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"autoClosingPairs": [
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"\""
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"surroundingPairs": [
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"\""
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
72
fenn.tmLanguage.json
Normal file
72
fenn.tmLanguage.json
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json",
|
||||||
|
"name": "Fenn",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"include": "#storage"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#keyword"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#identifier"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#string"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#number"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#constant"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#operator"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"include": "#comment"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"repository": {
|
||||||
|
"storage": {
|
||||||
|
"name": "storage.type.fenn",
|
||||||
|
"match": "(?i)\\b(var|const)\\b"
|
||||||
|
},
|
||||||
|
"keyword": {
|
||||||
|
"name": "keyword.other.fenn",
|
||||||
|
"match": "(?i)\\b(print)\\b"
|
||||||
|
},
|
||||||
|
"identifier": {
|
||||||
|
"name": "variable.other.fenn",
|
||||||
|
"match": "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b"
|
||||||
|
},
|
||||||
|
"string": {
|
||||||
|
"name": "string.quoted.double.fenn",
|
||||||
|
"begin": "\"",
|
||||||
|
"end": "\"",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"name": "constant.character.escape.fenn",
|
||||||
|
"match": "\\\\."
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"number": {
|
||||||
|
"name": "constant.numeric.fenn",
|
||||||
|
"match": "\\b\\d+(\\.\\d+)?\\b"
|
||||||
|
},
|
||||||
|
"constant": {
|
||||||
|
"name": "constant.language.fenn",
|
||||||
|
"match": "(?i)\\b(true|false|none)\\b"
|
||||||
|
},
|
||||||
|
"operator": {
|
||||||
|
"name": "keyword.operator.fenn",
|
||||||
|
"match": "\\+|-|\\*|/|&|[!=<>]=?"
|
||||||
|
},
|
||||||
|
"comment": {
|
||||||
|
"name": "comment.line.number-sign.fenn",
|
||||||
|
"match": "#.*$"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"scopeName": "source.fenn"
|
||||||
|
}
|
31
package.json
31
package.json
@@ -2,12 +2,41 @@
|
|||||||
"name": "fennlang-vscode",
|
"name": "fennlang-vscode",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "Fennlang extension for Visual Studio Code",
|
"description": "Fennlang extension for Visual Studio Code",
|
||||||
|
"private": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"vscode": "^1.74.0"
|
"vscode": "^1.74.0"
|
||||||
},
|
},
|
||||||
"main": "extension.js",
|
"main": "extension.js",
|
||||||
"contributes": {},
|
"categories": [
|
||||||
|
"Programming Languages"
|
||||||
|
],
|
||||||
|
"activationEvents": [
|
||||||
|
"onLanguage:semanticLanguage"
|
||||||
|
],
|
||||||
|
"contributes": {
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"id": "fenn",
|
||||||
|
"aliases": [
|
||||||
|
"Fenn",
|
||||||
|
"fenn"
|
||||||
|
],
|
||||||
|
"extensions": [
|
||||||
|
".fenn"
|
||||||
|
],
|
||||||
|
"configuration": "./fenn.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grammars": [
|
||||||
|
{
|
||||||
|
"language": "fenn",
|
||||||
|
"scopeName": "source.fenn",
|
||||||
|
"path": "./fenn.tmLanguage.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
"vscode:prepublish": "npm run build",
|
||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
},
|
},
|
||||||
"author": "Nettika <git@nettika.cat>",
|
"author": "Nettika <git@nettika.cat>",
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"lib": [
|
"lib": [
|
||||||
"ESNext"
|
"ESNext"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user