made a basic extension
This commit is contained in:
parent
ae1cc90a2a
commit
10eef39f12
6 changed files with 264 additions and 1 deletions
|
@ -252,7 +252,7 @@ ugass(a[0]) // 1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Gyors lekérés
|
### Gyors lekérés
|
||||||
Használat: `tábla[kulcs]`
|
Használat: `tábla.kulcs`
|
||||||
|
|
||||||
:::warning
|
:::warning
|
||||||
|
|
||||||
|
|
35
extension/astrolang.tmLanguage.json
Normal file
35
extension/astrolang.tmLanguage.json
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"scopeName": "source.astrolang",
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"name": "comment.line.astrolang",
|
||||||
|
"match": "//.*$"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "comment.block.astrolang",
|
||||||
|
"begin": "/\\*",
|
||||||
|
"end": "\\*/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keyword.control.astrolang",
|
||||||
|
"match": "\\b(kraf|piszolj|ha nem geny akkor geny|ha nem geny|nem piszv|kopva|gethelj|ha geny|lőcsve|csecs|reti|piszv|amíg geny|nincs hám|szard le|hámozd|be|ba)\\b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "keyword.operator.astrolang",
|
||||||
|
"match": "(\\+|-|\\*|\\/|%|=|==|!=|<=|>=|<|>|&&|\\|\\||!)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "string.quoted.double.astrolang",
|
||||||
|
"begin": "(?<=szaft)\"",
|
||||||
|
"end": "\"(?=szaft)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "variable.astrolang",
|
||||||
|
"match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\b"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "constant.numeric.astrolang",
|
||||||
|
"match": "([0-9]+)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
79
extension/index.js
Normal file
79
extension/index.js
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
import * as vscode from 'vscode'
|
||||||
|
|
||||||
|
vscode.languages.registerCompletionItemProvider('astrolang', {
|
||||||
|
provideCompletionItems() {
|
||||||
|
const words = [
|
||||||
|
"kraf",
|
||||||
|
"piszolj",
|
||||||
|
"ha nem geny akkor geny",
|
||||||
|
"ha nem geny",
|
||||||
|
"nem piszv",
|
||||||
|
"kopva",
|
||||||
|
"gethelj",
|
||||||
|
"ha geny",
|
||||||
|
"lőcsve",
|
||||||
|
"csecs",
|
||||||
|
"reti",
|
||||||
|
"piszv",
|
||||||
|
"amíg geny",
|
||||||
|
"nincs hám",
|
||||||
|
"szard le",
|
||||||
|
"hámozd",
|
||||||
|
"be",
|
||||||
|
"ba",
|
||||||
|
"szaft"
|
||||||
|
]
|
||||||
|
const env = [
|
||||||
|
"ugass",
|
||||||
|
"bimba",
|
||||||
|
"csömör",
|
||||||
|
"tarh",
|
||||||
|
"bimbabemb",
|
||||||
|
"nerd",
|
||||||
|
"tábla",
|
||||||
|
"kábel",
|
||||||
|
"szenvedés",
|
||||||
|
|
||||||
|
"abs",
|
||||||
|
"kerek",
|
||||||
|
"sin",
|
||||||
|
"cos",
|
||||||
|
"tan",
|
||||||
|
"sqrt",
|
||||||
|
"legnagyobb",
|
||||||
|
"legkisebb",
|
||||||
|
"pi",
|
||||||
|
|
||||||
|
"csemerd fel",
|
||||||
|
"csemerd le",
|
||||||
|
"hossz",
|
||||||
|
"ismételd",
|
||||||
|
"uno reverse",
|
||||||
|
"darabos",
|
||||||
|
"keres",
|
||||||
|
"átrak",
|
||||||
|
"számmá",
|
||||||
|
"betűvé",
|
||||||
|
|
||||||
|
"hozzáad",
|
||||||
|
"töröl",
|
||||||
|
"kulcsok",
|
||||||
|
|
||||||
|
"vége",
|
||||||
|
|
||||||
|
"halgass",
|
||||||
|
"kérés",
|
||||||
|
"írj",
|
||||||
|
"olvass",
|
||||||
|
"zár"
|
||||||
|
]
|
||||||
|
let out = []
|
||||||
|
for (let i = 0; i < words.length; i++) {
|
||||||
|
out.push(new vscode.CompletionItem(words[i], vscode.CompletionItemKind.Keyword))
|
||||||
|
}
|
||||||
|
for (let i = 0; i < env.length; i++) {
|
||||||
|
out.push(new vscode.CompletionItem(env[i], vscode.CompletionItemKind.Variable))
|
||||||
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
})
|
24
extension/language-configuration.json
Normal file
24
extension/language-configuration.json
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
"comments": {
|
||||||
|
"lineComment": "//",
|
||||||
|
"blockComment": ["/*", "*/"]
|
||||||
|
},
|
||||||
|
"brackets": [
|
||||||
|
["{", "}"],
|
||||||
|
["[", "]"],
|
||||||
|
["(", ")"]
|
||||||
|
],
|
||||||
|
"autoClosingPairs": [
|
||||||
|
{ "open": "{", "close": "}" },
|
||||||
|
{ "open": "[", "close": "]" },
|
||||||
|
{ "open": "(", "close": ")" },
|
||||||
|
{ "open": "/*", "close": " */", "notIn": ["string"] },
|
||||||
|
{ "open": "szaft\"", "close": "\"szaft", "notIn": ["string"] }
|
||||||
|
],
|
||||||
|
"surroundingPairs": [
|
||||||
|
["{", "}"],
|
||||||
|
["[", "]"],
|
||||||
|
["(", ")"],
|
||||||
|
["szaft\"", "\"szaft"]
|
||||||
|
]
|
||||||
|
}
|
41
extension/package.json
Normal file
41
extension/package.json
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"name": "asl-extension",
|
||||||
|
"version": "0.2.0",
|
||||||
|
"description": "The extension for Astro Lang",
|
||||||
|
"license": "MIT",
|
||||||
|
"author": "Afonya",
|
||||||
|
"type": "module",
|
||||||
|
"main": "index.js",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "^1.22.0"
|
||||||
|
},
|
||||||
|
"contributes": {
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"id": "astrolang",
|
||||||
|
"aliases": [
|
||||||
|
"Astro Lang",
|
||||||
|
"AstroLang",
|
||||||
|
"ASL"
|
||||||
|
],
|
||||||
|
"extensions": [
|
||||||
|
".asl"
|
||||||
|
],
|
||||||
|
"configuration": "./language-configuration.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grammars": [
|
||||||
|
{
|
||||||
|
"language": "astrolang",
|
||||||
|
"scopeName": "source.astrolang",
|
||||||
|
"path": "./astrolang.tmLanguage.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"snippets": [
|
||||||
|
{
|
||||||
|
"language": "astrolang",
|
||||||
|
"path": "./snippets.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
84
extension/snippets.json
Normal file
84
extension/snippets.json
Normal file
|
@ -0,0 +1,84 @@
|
||||||
|
{
|
||||||
|
"if": {
|
||||||
|
"prefix": "ha geny",
|
||||||
|
"body": [
|
||||||
|
"ha geny(${1:feltétel}) {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy if"
|
||||||
|
},
|
||||||
|
"else": {
|
||||||
|
"prefix": "ha nem geny",
|
||||||
|
"body": [
|
||||||
|
"ha nem geny {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy else"
|
||||||
|
},
|
||||||
|
"elseif": {
|
||||||
|
"prefix": "ha nem geny akkor geny",
|
||||||
|
"body": [
|
||||||
|
"ha nem geny akkor geny(${1:feltétel}) {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy else if"
|
||||||
|
},
|
||||||
|
"while": {
|
||||||
|
"prefix": "amíg geny",
|
||||||
|
"body": [
|
||||||
|
"amíg geny(${1:feltétel}) {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy while ciklus"
|
||||||
|
},
|
||||||
|
"for": {
|
||||||
|
"prefix": "kraf",
|
||||||
|
"body": [
|
||||||
|
"kraf(gethelj ${1:i} = ${2:0}; ${3:feltétel}; ${1:i}=${1:i}+1) {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy for ciklus"
|
||||||
|
},
|
||||||
|
"var create": {
|
||||||
|
"prefix": "gethelj",
|
||||||
|
"body": [
|
||||||
|
"gethelj ${1:változó} = ${2:érték}"
|
||||||
|
],
|
||||||
|
"description": "Egy változó létrehozása"
|
||||||
|
},
|
||||||
|
"function create": {
|
||||||
|
"prefix": "lőcsve",
|
||||||
|
"body": [
|
||||||
|
"lőcsve ${1:függvény név}(${2:paraméterek}) {",
|
||||||
|
"$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Egy függvény létrehozása"
|
||||||
|
},
|
||||||
|
"import": {
|
||||||
|
"prefix": "hámozd",
|
||||||
|
"body": [
|
||||||
|
"hámozd ${1:modul név} ${2|be,ba|} szaft\"${3:elérési út}\"szaft"
|
||||||
|
],
|
||||||
|
"description": "Egy modul importálása"
|
||||||
|
},
|
||||||
|
"string": {
|
||||||
|
"prefix": "szaft",
|
||||||
|
"body": [
|
||||||
|
"szaft\"${1:szöveg}\"szaft"
|
||||||
|
],
|
||||||
|
"description": "Egy szöveg létrehozása"
|
||||||
|
},
|
||||||
|
"print": {
|
||||||
|
"prefix": "ugass",
|
||||||
|
"body": [
|
||||||
|
"ugass(${1:üzenet})"
|
||||||
|
],
|
||||||
|
"description": "Egy üzenet kiírása a konzolra"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue