From 100bb6fc8a87c3f5babe2faeee38fca7e275b554 Mon Sep 17 00:00:00 2001 From: sedyh Date: Wed, 6 Jul 2022 20:57:52 +0300 Subject: [PATCH] Initial commit --- .gitattributes | 2 + .vscode/launch.json | 13 ++ LICENSE | 4 + README.md | 72 +++++++++ kage-file-dark-theme.png | Bin 0 -> 4372 bytes kage-file-light-theme.png | Bin 0 -> 4367 bytes kage.png | Bin 0 -> 99795 bytes package.json | 42 +++++ syntaxes/kage.tmLanguage.json | 87 ++++++++++ syntaxes/language-configuration.json | 30 ++++ syntaxes/snippets.json | 227 +++++++++++++++++++++++++++ 11 files changed, 477 insertions(+) create mode 100644 .gitattributes create mode 100644 .vscode/launch.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 kage-file-dark-theme.png create mode 100644 kage-file-light-theme.png create mode 100644 kage.png create mode 100644 package.json create mode 100644 syntaxes/kage.tmLanguage.json create mode 100644 syntaxes/language-configuration.json create mode 100644 syntaxes/snippets.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..a035b56 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.vim linguist-detectable=false +*.snippets linguist-detectable=false diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..f675aa1 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,13 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..28eb83b --- /dev/null +++ b/LICENSE @@ -0,0 +1,4 @@ +This repository is licensed under: + +CC0 1.0 Universal +https://creativecommons.org/publicdomain/zero/1.0 diff --git a/README.md b/README.md new file mode 100644 index 0000000..10514ef --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +## ebitengine-kage-support Ebitengine Kage support for Visual Studio Code + +Basic syntax and snippet support for the Ebitengine Kage shading language. + +
+ +Ebitengine adopts an original shading language 'Kage'. This has a compatible syntax with Go, but the details are different. Kage has high portability. Ebitengine uses graphics libraries like OpenGL or Metal and this depends on environments, but Kage is compiled on the fly so that this works equally everywhere. + +### Installation + +[![](https://img.shields.io/badge/get%20it%20from-555555?style=for-the-badge&logo=visualstudiocode&logoColor=72a9d4)![](https://img.shields.io/badge/marketplace-72a9d4?style=for-the-badge)](https://marketplace.visualstudio.com/items?itemName=sedyh.ebitengine-kage) + +
Manual installation
+ + Install `vsce` from `npm`. + + ``` + npm install --global vsce + ``` + + Package extension in `.vsix` archive. + + ``` + vsce package + ``` + + Run this command to install package from `.vsix`, replace `ebitengine-kage.vsix` with your path. + + ``` + code --install-extension ebitengine-kage.vsix + ``` + +
+ +### Other editors +[![](https://img.shields.io/badge/source-555555?style=for-the-badge&logo=sublimetext&logoColor=ba9759)](https://github.com/sedyh/ebitengine-kage-sublime)[![](https://img.shields.io/badge/download-ba9759?style=for-the-badge)](https://packagecontrol.io)
+[![](https://img.shields.io/badge/source-555555?style=for-the-badge&logo=vim&logoColor=60b371)](https://github.com/sedyh/ebitengine-kage-vim)[![](https://img.shields.io/badge/download-60b371?style=for-the-badge)](https://www.vim.org/scripts/script.php?script_id=6021) + +### Features + +- [Basic syntax highlighting](#basic-syntax-highlighting) +- [Quick start](#quick-start) +- [Short documentation](#short-documentation) +- [List of all built-in functions](#list-of-all-built-in-functions) + +### Basic syntax highlighting + +back This plugin provides basic Kage language support for Ebitengine. It includes keywords, types, literals and snippets. + +![feature-syntax](https://user-images.githubusercontent.com/19890545/177754828-9ab585c9-56be-4304-92e5-dafa0b10ba97.png) + +### Quick start + +back To quickly start writing a shader, you can type "fragment" or "package". + +![feature-quickstart](https://user-images.githubusercontent.com/19890545/177755034-58f14b63-f92d-4bba-8e7e-3e740cd81e60.png) + +### Short documentation + +back The plugin provides a short help for each feature in Kage. + +![feature-description](https://user-images.githubusercontent.com/19890545/177755312-77153cff-16a7-46ce-b962-c002fc92c2ff.png) + +### List of all built-in functions + +back You can see a list of all built-in functions by typing "kage". + +![feature-help](https://user-images.githubusercontent.com/19890545/177755430-0f020abf-abcc-4b02-8138-410695e09fbd.png) + +## Known Issues + +The plugin will highlight complex numbers despite the fact that, at the moment, Kage does not support them. diff --git a/kage-file-dark-theme.png b/kage-file-dark-theme.png new file mode 100644 index 0000000000000000000000000000000000000000..958b9efc99089ad1dc02f8903943a587b825e3d6 GIT binary patch literal 4372 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℘$O~IHKahAGn5M7B?Kc8f0;Zk~3vj7J4*VtZ{(hIWp z;91hMYv2r7EP8hh9@4XG;6$<*?WJk$W*-iGe4AK!Ia2hYlbz)BdrnRnuU-N4O?sWC z?E?(|KkObjB#UbAUW2#mw{h^hJqJ(eAv5Vk>ai;3xekcVg>8mSo=Z;<`8ii2ex`XN4KWeCQ^i8Y8e`V?Xi8 z63`V0k0EA0OV-rZLBTYM#~*WjT$v-)TmLTMvZ-d{|CrOF^#aNB~AbU002ov JPDHLkV1m$TMVSBq literal 0 HcmV?d00001 diff --git a/kage.png b/kage.png new file mode 100644 index 0000000000000000000000000000000000000000..75860005160d15aaae34a5314b6aaac3fd82f5b0 GIT binary patch literal 99795 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%0D0p|c*OnoBRq4k1O7YRPd|GflKEG0( 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json new file mode 100644 index 0000000..235e711 --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "ebitengine-kage", + "publisher": "sedyh", + "displayName": "ebitengine-kage", + "description": "Language for writing shaders on Ebitengine", + "version": "0.1.1", + "repository": { + "type": "git", + "url": "https://github.com/sedyh/ebitengine-kage-support.git" + }, + "engines": { + "vscode": "^1.68.0" + }, + "categories": [ + "Programming Languages" + ], + "license": "See LICENSE file", + "icon": "kage.png", + "contributes": { + "languages": [{ + "id": "kage", + "aliases": ["kage", "kage"], + "extensions": [".kage",".go.kage",".kage.go"], + "configuration": "./syntaxes/language-configuration.json", + "icon": { + "light": "kage-file-light-theme.png", + "dark": "kage-file-dark-theme.png" + } + }], + "grammars": [{ + "language": "kage", + "scopeName": "source.kage", + "path": "./syntaxes/kage.tmLanguage.json" + }], + "snippets": [ + { + "language": "kage", + "path": "./syntaxes/snippets.json" + } + ] + } +} diff --git a/syntaxes/kage.tmLanguage.json b/syntaxes/kage.tmLanguage.json new file mode 100644 index 0000000..60b3309 --- /dev/null +++ b/syntaxes/kage.tmLanguage.json @@ -0,0 +1,87 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "kage", + "patterns": [ + { "include": "#keywords" }, + { "include": "#types" }, + { "include": "#builtins" }, + { "include": "#functions" }, + { "include": "#numbers" }, + { "include": "#comments" } + ], + "repository": { + "keywords": { + "patterns": [ + { + "name": "keyword.control.kage", + "match": "\\b(package|var|func|if|for|return|true|false|nil)\\b" + } + ] + }, + "types": { + "patterns": [ + { + "name": "constant.language.kage", + "match": "\\b(bool|int|float|vec2|vec3|vec4|mat2|mat3|mat4)\\b" + } + ] + }, + "builtins": { + "patterns": [ + { + "name": "entity.name.tag.kage", + "match": "\\b(sin|cos|tan|asin|acos|atan|atan2|pow|exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|min|max|clamp|mix|step|smoothstep|length|distance|dot|bcross|normalize|faceforward|reflect|refract|transpose|dfdx|dfdy|fwidth)\\b" + } + ] + }, + "functions": { + "patterns": [ + { + "name": "entity.name.function.kage", + "match": "(?<=func )([a-zA-Z][a-zA-Z0-9]+)(?=\\()" + }, + { + "name": "support.function.kage", + "match": "[a-zA-Z][a-zA-Z0-9]+(?=\\(.*\\))" + } + ] + }, + "numbers": { + "patterns": [ + { + "name": "constant.numeric.kage", + "match": "(((\\.\\d+|0[xXbBoO][\\dbBxXaAbBcCdDeEfF_]*|(?<=[^\\w])\\d+)\\.{0,1}[\\dbBxXaAbBcCdDeEfF_]*([eEpP][-+]{0,1}\\d+))|((\\.\\d+|0[xXbBoO][\\dbBxXaAbBcCdDeEfF_]*|(?<=[^\\w])\\d+)\\.{0,1}[\\dbBxXaAbBcCdDeEfF_]*))i{0,1}" + } + ] + }, + "comments": { + "patterns": [ + { + "name": "comment.line.double-slash.kage", + "match": "//.*" + }, + { + "name": "comment.block.kage", + "begin": "/\\*(?!\\*)", + "end": "\\*/", + "patterns": [ + { + "include": "#comments" + } + ] + }, + { + "name": "comment.block.documentation.kage", + "begin": "/\\*\\*", + "end": "\\*/", + "patterns": [ + { + "include": "#comments" + } + ] + } + ] + } + }, + "scopeName": "source.kage" +} diff --git a/syntaxes/language-configuration.json b/syntaxes/language-configuration.json new file mode 100644 index 0000000..6b619d0 --- /dev/null +++ b/syntaxes/language-configuration.json @@ -0,0 +1,30 @@ +{ + "comments": { + // symbol used for single line comment. Remove this entry if your language does not support line comments + "lineComment": "//", + // symbols used for start and end a block comment. Remove this entry if your language does not support block comments + "blockComment": [ "/*", "*/" ] + }, + // symbols used as brackets + "brackets": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ], + // symbols that are auto closed when typing + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ], + // symbols that can be used to surround a selection + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} diff --git a/syntaxes/snippets.json b/syntaxes/snippets.json new file mode 100644 index 0000000..0544413 --- /dev/null +++ b/syntaxes/snippets.json @@ -0,0 +1,227 @@ +{ + "main": { + "prefix": ["fragment", "package"], + "body": ["package main", "", "func Fragment(pos vec4, tex vec2, col vec4) vec4 {", "\t$0", "\treturn vec4(0.5, 0.0, 0.0, 1.0)", "}"], + "description": "The basis for the shader" + }, + "vec2": { + "prefix": ["vec2"], + "body": ["vec2(0, 0)"], + "description": "Usage vec2(x, y) or vec2(x)" + }, + "vec3": { + "prefix": ["vec3"], + "body": ["vec3(0, 0, 0)"], + "description": "Usage vec3(x, y, z) or vec3(x)" + }, + "vec4": { + "prefix": ["vec4"], + "body": ["vec4(0, 0, 0, 0)"], + "description": "Usage vec4(x, y, z, w) or vec4(x)" + }, + "mat2": { + "prefix": ["mat2"], + "body": ["mat2(", "\t0, 0", "\t0, 0,", ")"], + "description": "Usage mat2(\n a, b,\n c, d\n)" + }, + "mat3": { + "prefix": ["mat3"], + "body": ["mat3(", "\t0, 0, 0,", "\t0, 0, 0,", "\t0, 0, 0,", ")"], + "description": "Usage mat3(\n a, b, c,\n d, e, f,\n g, h, i\n)" + }, + "mat4": { + "prefix": ["mat4"], + "body": ["mat4(", "\t0, 0, 0, 0,", "\t0, 0, 0, 0,", "\t0, 0, 0, 0,", "\t0, 0, 0, 0,", ")"], + "description": "Usage mat4(\n a, b, c, d,\n e, f, g, h,\n i, j, k, l\n)" + }, + "sin": { + "prefix": ["sin", "kage"], + "body": ["sin($0)"], + "description": "Usage sin(x T)\n\nT is float or vec" + }, + "cos": { + "prefix": ["cos", "kage"], + "body": ["cos($0)"], + "description": "Usage cos(x T)\n\nT is float or vec" + }, + "tan": { + "prefix": ["tan", "kage"], + "body": ["tan($0)"], + "description": "Usage tan(x T)\n\nT is float or vec" + }, + "asin": { + "prefix": ["asin", "kage"], + "body": ["asin($0)"], + "description": "Usage asin(x T)\n\nT is float or vec" + }, + "acos": { + "prefix": ["acos", "kage"], + "body": ["acos($0)"], + "description": "Usage acos(x T)\n\nT is float or vec" + }, + "atan": { + "prefix": ["atan", "kage"], + "body": ["atan($0)"], + "description": "Usage atan(y_over_x T)\n\nT is float or vec" + }, + "atan2": { + "prefix": ["atan2", "kage"], + "body": ["atan2($0)"], + "description": "Usage atan2(x, y T)\n\nT is float or vec" + }, + "pow": { + "prefix": ["pow", "kage"], + "body": ["pow($0)"], + "description": "Usage pow(x, y T)\n\nT is float or vec" + }, + "exp": { + "prefix": ["exp", "kage"], + "body": ["exp($0)"], + "description": "Usage exp(x T)\n\nT is float or vec" + }, + "log": { + "prefix": ["log", "kage"], + "body": ["log($0)"], + "description": "Usage log(x T)\n\nT is float or vec" + }, + "exp2": { + "prefix": ["exp2", "kage"], + "body": ["exp2($0)"], + "description": "Usage exp2(x T)\n\nT is float or vec" + }, + "log2": { + "prefix": ["log2", "kage"], + "body": ["log2($0)"], + "description": "Usage log2(x T)\n\nT is float or vec" + }, + "sqrt": { + "prefix": ["sqrt", "kage"], + "body": ["sqrt($0)"], + "description": "Usage sqrt(x T)\n\nT is float or vec" + }, + "inversesqrt": { + "prefix": ["inversesqrt", "kage"], + "body": ["inversesqrt($0)"], + "description": "Usage inversesqrt(x T)\n\nT is float or vec" + }, + "abs": { + "prefix": ["abs", "kage"], + "body": ["abs($0)"], + "description": "Usage abs(x T)\n\nT is float or vec" + }, + "sign": { + "prefix": ["sign", "kage"], + "body": ["sign($0)"], + "description": "Usage sign(x T)\n\nT is float or vec" + }, + "floor": { + "prefix": ["floor", "kage"], + "body": ["floor($0)"], + "description": "Usage floor(x T)\n\nT is float or vec" + }, + "ceil": { + "prefix": ["ceil", "kage"], + "body": ["ceil($0)"], + "description": "Usage ceil(x T)\n\nT is float or vec" + }, + "fract": { + "prefix": ["fract", "kage"], + "body": ["fract($0)"], + "description": "Usage fract(x T)\n\nT is float or vec" + }, + "mod": { + "prefix": ["mod", "kage"], + "body": ["mod($0)"], + "description": "Usage mod(x, y T)\n\nT is float or vec" + }, + "min": { + "prefix": ["min", "kage"], + "body": ["min($0)"], + "description": "Usage min(x, y T)\n\nT is float or vec" + }, + "max": { + "prefix": ["max", "kage"], + "body": ["max($0)"], + "description": "Usage max(x, y T)\n\nT is float or vec" + }, + "clamp": { + "prefix": ["clamp", "kage"], + "body": ["clamp($0)"], + "description": "Usage clap(x, min, max T)\n\nT is float or vec" + }, + "mix": { + "prefix": ["mix", "kage"], + "body": ["mix($0)"], + "description": "Usage mix(x, y, a T)\n\nT is float or vec" + }, + "step": { + "prefix": ["step", "kage"], + "body": ["step($0)"], + "description": "Usage step(edge, x T)\n\nT is float or vec" + }, + "smoothstep": { + "prefix": ["smoothstep", "kage"], + "body": ["smoothstep($0)"], + "description": "Usage smoothstep(edge0, edge1, x T)\n\nT is float or vec" + }, + "length": { + "prefix": ["length", "kage"], + "body": ["length($0)"], + "description": "Usage length(x T)\n\nT is float or vec" + }, + "distance": { + "prefix": ["distance", "kage"], + "body": ["distance($0)"], + "description": "Usage distance(p0, p1 T)\n\nT is float or vec" + }, + "dot": { + "prefix": ["dot", "kage"], + "body": ["dot($0)"], + "description": "Usage dot(x, y T)\n\nT is float or vec" + }, + "cross": { + "prefix": ["cross", "kage"], + "body": ["cross($0)"], + "description": "Usage cross(x, y vec3)" + }, + "normalize": { + "prefix": ["normalize", "kage"], + "body": ["normalize($0)"], + "description": "Usage normalize(x T)\n\nT is float or vec" + }, + "faceforward": { + "prefix": ["faceforward", "kage"], + "body": ["faceforward($0)"], + "description": "Usage faceforward(n, i, nref T)\n\nT is float or vec" + }, + "reflect": { + "prefix": ["reflect", "kage"], + "body": ["reflect($0)"], + "description": "Usage reflect(i, n T)\n\nT is float or vec" + }, + "refract": { + "prefix": ["refract", "kage"], + "body": ["refract($0)"], + "description": "Usage refract(i, n T, eta float)\n\nT is float or vec" + }, + "transpose": { + "prefix": ["transpose", "kage"], + "body": ["transpose($0)"], + "description": "Usage transpose(x T)\n\nT is mat" + }, + "dfdx": { + "prefix": ["dfdx", "kage"], + "body": ["dfdx($0)"], + "description": "Usage dfdx(x T)\n\nT is float or vec" + }, + "dfdy": { + "prefix": ["dfdy", "kage"], + "body": ["dfdy($0)"], + "description": "Usage dfdy(x T)\n\nT is float or vec" + }, + "fwidth": { + "prefix": ["fwidth", "kage"], + "body": ["fwidth($0)"], + "description": "Usage fwidth(x T)\n\nT is float or vec" + } +}