From f99d607cf0e2f3cb30dc8176d9ae17ae0ded03b3 Mon Sep 17 00:00:00 2001 From: Alan O Date: Sun, 16 Jan 2022 15:31:11 -0500 Subject: [PATCH] Initial commit --- .gitattributes | 3 + .gitignore | 2 + .vscode/launch.json | 17 +++++ .vscodeignore | 4 ++ CHANGELOG.md | 9 +++ README.md | 65 ++++++++++++++++++ icon.png | Bin 0 -> 10155 bytes language-configuration.json | 31 +++++++++ package-lock.json | 15 +++++ package.json | 32 +++++++++ syntaxes/chickenscript.tmLanguage.json | 89 +++++++++++++++++++++++++ vsc-extension-quickstart.md | 29 ++++++++ 12 files changed, 296 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vscode/launch.json create mode 100644 .vscodeignore create mode 100644 CHANGELOG.md create mode 100644 README.md create mode 100644 icon.png create mode 100644 language-configuration.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 syntaxes/chickenscript.tmLanguage.json create mode 100644 vsc-extension-quickstart.md diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..13bc9c2 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# Set default behavior to automatically normalize line endings. +* text=auto + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..67dfeb3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +*.vsix \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..0e191b5 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,17 @@ +// A launch configuration that launches the extension inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} \ No newline at end of file diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..f369b5e --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,4 @@ +.vscode/** +.vscode-test/** +.gitignore +vsc-extension-quickstart.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..57232cd --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "mdcs-highlighter" extension will be documented in this file. + +Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. + +## [Unreleased] + +- Initial release \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f42b18 --- /dev/null +++ b/README.md @@ -0,0 +1,65 @@ +# mdcs-highlighter README + +This is the README for your extension "mdcs-highlighter". After writing up a brief description, we recommend including the following sections. + +## Features + +Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. + +For example if there is an image subfolder under your extension project workspace: + +\!\[feature X\]\(images/feature-x.png\) + +> Tip: Many popular extensions utilize animations. This is an excellent way to show off your extension! We recommend short, focused animations that are easy to follow. + +## Requirements + +If you have any requirements or dependencies, add a section describing those and how to install and configure them. + +## Extension Settings + +Include if your extension adds any VS Code settings through the `contributes.configuration` extension point. + +For example: + +This extension contributes the following settings: + +* `myExtension.enable`: enable/disable this extension +* `myExtension.thing`: set to `blah` to do something + +## Known Issues + +Calling out known issues can help limit users opening duplicate issues against your extension. + +## Release Notes + +Users appreciate release notes as you update your extension. + +### 1.0.0 + +Initial release of ... + +### 1.0.1 + +Fixed issue #. + +### 1.1.0 + +Added features X, Y, and Z. + +----------------------------------------------------------------------------------------------------------- + +## Working with Markdown + +**Note:** You can author your README using Visual Studio Code. Here are some useful editor keyboard shortcuts: + +* Split the editor (`Cmd+\` on macOS or `Ctrl+\` on Windows and Linux) +* Toggle preview (`Shift+CMD+V` on macOS or `Shift+Ctrl+V` on Windows and Linux) +* Press `Ctrl+Space` (Windows, Linux) or `Cmd+Space` (macOS) to see a list of Markdown snippets + +### For more information + +* [Visual Studio Code's Markdown Support](http://code.visualstudio.com/docs/languages/markdown) +* [Markdown Syntax Reference](https://help.github.com/articles/markdown-basics/) + +**Enjoy!** diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..373a972ce446ee0dd369a77cd874b5b9583a1f7c GIT binary patch literal 10155 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"], + ], + // symbols that are auto closed when typing + "autoClosingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["<", ">"], + ["\"", "\""], + ["'", "'"], + ["then", "\nend"], + ["else", "\nend"] + ], + // symbols that can be used to surround a selection + "surroundingPairs": [ + ["{", "}"], + ["[", "]"], + ["(", ")"], + ["\"", "\""], + ["'", "'"] + ] +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..c392f09 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15 @@ +{ + "name": "mdcs-highlighter", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "mdcs-highlighter", + "version": "0.0.1", + "engines": { + "vscode": "^1.63.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6cedfcd --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "mdcs-highlighter", + "displayName": "ChickenScript Syntax Highlighter", + "description": "Syntax highlighter for Minecraft ChickenScript", + "version": "0.0.1", + "author": {"name": "Alan O'Cull", "url": "https://alanocull.com", "email": "alanrocull@gmail.com"}, + "repository": {"url": "https://git.maxocull.com/alan/mdcs-highlighter"}, + "icon": "./icon.png", + "engines": { + "vscode": "^1.63.0" + }, + "categories": [ + "Programming Languages", + "Other" + ], + "contributes": { + "languages": [{ + "id": "chickenscript", + "aliases": ["ChickenScript", "chickenscript"], + "extensions": [".mdcs"], + "configuration": "./language-configuration.json" + }], + "grammars": [{ + "language": "chickenscript", + "scopeName": "source.mdcs", + "path": "./syntaxes/chickenscript.tmLanguage.json", + "embeddedLanguages": { + "meta.embedded.block.mcfunction": "mcfunction" + } + }] + } +} \ No newline at end of file diff --git a/syntaxes/chickenscript.tmLanguage.json b/syntaxes/chickenscript.tmLanguage.json new file mode 100644 index 0000000..a59120c --- /dev/null +++ b/syntaxes/chickenscript.tmLanguage.json @@ -0,0 +1,89 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "ChickenScript", + "patterns": [ + { + "include": "#keywords" + }, + { + "include": "#variables" + }, + { + "include": "#strings" + }, + { + "include": "#constants" + }, + { + "include": "#comments" + }, + { + "include": "#overrides" + } + ], + "repository": { + "keywords": { + "patterns": [{ + "name": "keyword.control.chickenscript", + "match": "\\b(if|elseif|else|then|while|do|for|return|function|datapack|end)\\b" + }] + }, + "variables": { + "patterns": [ + { + "name": "entity.name.class", + "match": "\\b(int|deci|vector|NBT|Entity)\\b" + }, + { + "name": "keyword.other", + "match": "\\b(property|singular)\\b" + } + ] + }, + "strings": { + "name": "string.quoted.double.chickenscript", + "begin": "\"", + "end": "\"", + "patterns": [ + { + "name": "constant.character.escape.chickenscript", + "match": "\\\\." + } + ] + }, + "constants": { + "patterns": [ + { + "name": "constant.numeric", + "match": "\\d+" + }, + { + "name": "constant.language", + "match": "[@]." + } + ] + }, + "comments": { + "patterns": [{ + "name": "comment.line.number-sign.chickenscript", + "match": "#.*" + }] + }, + "overrides": { + "begin": "\\s*!", + "end": "\n", + "beginCaptures": { + "0": { "name": "keyword.control" } + }, + "name": "meta.embedded.block.mcfunction", + "patterns": [ + { + "name": "constant.language", + "match": "&[^\\s]*" + }, + { "include": "source.mcfunction" } + ] + } + }, + "scopeName": "source.mdcs" +} \ No newline at end of file diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md new file mode 100644 index 0000000..316487c --- /dev/null +++ b/vsc-extension-quickstart.md @@ -0,0 +1,29 @@ +# Welcome to your VS Code Extension + +## What's in the folder + +* This folder contains all of the files necessary for your extension. +* `package.json` - this is the manifest file in which you declare your language support and define the location of the grammar file that has been copied into your extension. +* `syntaxes/chickenscript.tmLanguage.json` - this is the Text mate grammar file that is used for tokenization. +* `language-configuration.json` - this is the language configuration, defining the tokens that are used for comments and brackets. + +## Get up and running straight away + +* Make sure the language configuration settings in `language-configuration.json` are accurate. +* Press `F5` to open a new window with your extension loaded. +* Create a new file with a file name suffix matching your language. +* Verify that syntax highlighting works and that the language configuration settings are working. + +## Make changes + +* You can relaunch the extension from the debug toolbar after making changes to the files listed above. +* You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. + +## Add more language features + +* To add features such as intellisense, hovers and validators check out the VS Code extenders documentation at https://code.visualstudio.com/docs + +## Install your extension + +* To start using your extension with Visual Studio Code copy it into the `/.vscode/extensions` folder and restart Code. +* To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension.