From f28643ce7cbb15710ad1bca8634bb906e6ae51a2 Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Wed, 16 Mar 2022 22:48:42 -0400 Subject: [PATCH] syntax: modified clojure grammar to work decently for OpenGOAL --- .gitignore | 3 +- CHANGELOG.md | 9 - LICENSE | 15 + README.md | 69 +--- docs/README.md | 5 +- docs/img/opengoal-highlighting.png | Bin 0 -> 35432 bytes docs/img/opengoal-ir-highlighting.png | Bin 0 -> 71105 bytes package.json | 38 +++ syntaxes/configs/ir.jsonc | 12 +- syntaxes/configs/opengoal.jsonc | 52 +-- syntaxes/opengoal-goos.tmLanguage.json | 62 ++-- syntaxes/opengoal-ir.tmLanguage.json | 29 +- syntaxes/opengoal.tmLanguage.json | 337 ++++++++++++++----- syntaxes/sample.json | 431 +++++++++++++++++++++++++ test/sample.gc | 15 +- vsc-extension-quickstart.md | 29 -- 16 files changed, 833 insertions(+), 273 deletions(-) delete mode 100644 CHANGELOG.md create mode 100644 LICENSE create mode 100644 docs/img/opengoal-highlighting.png create mode 100644 docs/img/opengoal-ir-highlighting.png create mode 100644 syntaxes/sample.json delete mode 100644 vsc-extension-quickstart.md diff --git a/.gitignore b/.gitignore index 67dfeb3..5bcaf12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules -*.vsix \ No newline at end of file +*.vsix +TODO.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index e715642..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,9 +0,0 @@ -# Change Log - -All notable changes to the "opengoal" 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/LICENSE b/LICENSE new file mode 100644 index 0000000..d84ea57 --- /dev/null +++ b/LICENSE @@ -0,0 +1,15 @@ +ISC License + +Copyright (c) 2022-2022 OpenGOAL Team + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md index e43808d..fe55606 100644 --- a/README.md +++ b/README.md @@ -1,65 +1,22 @@ -# opengoal README +# OpenGOAL for VSCode -This is the README for your extension "opengoal". After writing up a brief description, we recommend including the following sections. +Provides syntax highlighting, snippets, and more for the OpenGOAL language and it's related languages as well - https://open-goal.github.io + +Therefore, this repo also contains TextMate grammars for the languages that you should be able to use for any other editor if you so choose. ## Features -Describe specific features of your extension including screenshots of your extension in action. Image paths are relative to this README file. +- Syntax Highlighting for `.gc` (OpenGOAL) files +- Syntax Highlighting for `*_ir2.asm` (OpenGOAL IR) files + - Supports embedded highlighting for OpenGOAL blocks +- File Icons distinct for each sub-language -For example if there is an image subfolder under your extension project workspace: +## Example Screenshots -\!\[feature X\]\(images/feature-x.png\) +OpenGOAL Syntax Highlighting: -> 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. +![](docs/img/opengoal-highlighting.png) -## Requirements +OpenGOAL IR Syntax Highlighting: -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!** +![](docs/img/opengoal-ir-highlighting.png) diff --git a/docs/README.md b/docs/README.md index 374b8d0..9295a9e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,4 @@ -## A bunch of articles that were invaluable: +## A bunch of articles are invaluable resources: -- +- https://www.apeth.com/nonblog/stories/textmatebundle.html +- https://rubular.com/ diff --git a/docs/img/opengoal-highlighting.png b/docs/img/opengoal-highlighting.png new file mode 100644 index 0000000000000000000000000000000000000000..8b0e9eba3b9367123f9c3662d1460ba1f525314a GIT binary patch literal 35432 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 literal 0 HcmV?d00001 diff --git a/docs/img/opengoal-ir-highlighting.png b/docs/img/opengoal-ir-highlighting.png new file mode 100644 index 0000000000000000000000000000000000000000..766af7b09f213042e2d13d76581a366343fa406d GIT binary patch literal 71105 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\/|\\&\\+?|\\#cond|\\+|\\*|\\<\\=?|\\!?\\=|\\>\\=?)|(?:add-macro-to-autocomplete|and|asm-data-file|asm-file|asm-text-file|autocomplete|begin|block|build-dgos|car|cdr|cond|dbg|dbs|declare-file|declare-type|declare|defconstant|defenum|defglobalconstant|define-extern|define-state-hook|define-virtual-state-hook|define|defmethod|deftype|eq\\?|fmax|fmin|get-info|go-hook|goto|gs|imul64|in-package|inline|label|lambda|listen-to-target|load-project|local-vars|logand|logior|lognot|logxor|make|method-of-object|method-of-type|mlet|mod|neq\\?|new|none|nop!|not|or|print-debug-compiler-stats|print-type|psize-of|quote|reload|repl-help|reset-target|return-from|rlet|sar|set-config\\!|set\\!|seval|shl|shr|size-of|sqrtf-no-fabs|the-as|the|top-level|when-goto)|(?:defun|defmacro|defstep|defstate|let|let\\*|while))(?:\\s|\\))", - "captures": { - "1": { - "name": "entity.name.function.builtin" - } - } - } - ] - }, - "strings": { + "constants": { "patterns": [ { - "name": "string.quoted.double.opengoal", - "begin": "\"", - "end": "\"", - "patterns": [ - { - "name": "constant.character.escape.opengoal", - "match": "\\\\." - } - ] + "match": "(none|#f)(?=(\\s|\\)|\\]|\\}))", + "name": "constant.language.nil.opengoal" + }, + { + "match": "(#t|#f)", + "name": "constant.language.boolean.opengoal" + }, + { + "match": "([-+]?\\d+/\\d+)", + "name": "constant.numeric.ratio.opengoal" + }, + { + "match": "([-+]?(?:(?:3[0-6])|(?:[12]\\d)|[2-9])[rR][0-9A-Za-z]+N?)", + "name": "constant.numeric.arbitrary-radix.opengoal" + }, + { + "match": "([-+]?0[xX][0-9a-fA-F]+N?)", + "name": "constant.numeric.hexadecimal.opengoal" + }, + { + "match": "([-+]?0[0-7]+N?)", + "name": "constant.numeric.octal.opengoal" + }, + { + "match": "([-+]?[0-9]+(?:(\\.|(?=[eEM]))[0-9]*([eE][-+]?[0-9]+)?)M?)", + "name": "constant.numeric.double.opengoal" + }, + { + "match": "([-+]?\\d+N?)", + "name": "constant.numeric.long.opengoal" + }, + { + "include": "#keyword" } ] + }, + "keyword": { + "match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))", + "name": "constant.keyword.opengoal" + }, + "keyfn": { + "patterns": [ + { + "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|unless(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|lambda|throw[\\p{Ll}\\-]*|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))", + "name": "storage.control.opengoal" + }, + { + "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))", + "name": "keyword.control.opengoal" + } + ] + }, + "quoted-sexp": { + "begin": "(['``]\\()", + "beginCaptures": { + "1": { + "name": "keyword.operator.opengoal punctuation.section.expression.begin.opengoal" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.opengoal" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.opengoal" + }, + "3": { + "name": "punctuation.section.expression.end.opengoal" + } + }, + "name": "meta.quoted-expression.opengoal", + "patterns": [ + { + "include": "$self" + } + ] + }, + "regexp": { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.regexp.begin.opengoal" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.regexp.end.opengoal" + } + }, + "name": "string.regexp.opengoal", + "patterns": [ + { + "include": "#regexp_escaped_char" + } + ] + }, + "regexp_escaped_char": { + "match": "\\\\.", + "name": "constant.character.escape.opengoal" + }, + "sexp": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.opengoal" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.opengoal" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.opengoal" + }, + "3": { + "name": "punctuation.section.expression.end.opengoal" + } + }, + "name": "meta.expression.opengoal", + "patterns": [ + { + "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "entity.global.opengoal" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#keyfn" + }, + { + "include": "#constants" + }, + { + "include": "#sexp" + }, + { + "match": "(?<=\\()(.+?)(?=\\s|\\))", + "captures": { + "1": { + "name": "entity.name.function.opengoal" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "string": { + "begin": "(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "meta.symbol.opengoal" + } + ] + }, + "var": { + "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))", + "name": "meta.var.opengoal" + }, + "readerMacros": { + "match": "('|,@|`|,)", + "name": "keyword.operator.opengoal" } - }, - "scopeName": "source.opengoal" + } } diff --git a/syntaxes/sample.json b/syntaxes/sample.json new file mode 100644 index 0000000..a3720fc --- /dev/null +++ b/syntaxes/sample.json @@ -0,0 +1,431 @@ +{ + "information_for_contributors": [ + "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson", + "If you want to provide a fix or improvement, please create a pull request against the original repository.", + "Once accepted there, we are happy to receive an update request." + ], + "version": "https://github.com/atom/language-clojure/commit/45bdb881501d0b8f8b707ca1d3fcc8b4b99fca03", + "name": "Clojure", + "scopeName": "source.clojure", + "patterns": [ + { + "include": "#comment" + }, + { + "include": "#shebang-comment" + }, + { + "include": "#quoted-sexp" + }, + { + "include": "#sexp" + }, + { + "include": "#keyfn" + }, + { + "include": "#string" + }, + { + "include": "#vector" + }, + { + "include": "#set" + }, + { + "include": "#map" + }, + { + "include": "#regexp" + }, + { + "include": "#var" + }, + { + "include": "#constants" + }, + { + "include": "#dynamic-variables" + }, + { + "include": "#metadata" + }, + { + "include": "#namespace-symbol" + }, + { + "include": "#symbol" + } + ], + "repository": { + "comment": { + "begin": "(?\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))", + "name": "constant.keyword.clojure" + }, + "keyfn": { + "patterns": [ + { + "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))", + "name": "storage.control.clojure" + }, + { + "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))", + "name": "keyword.control.clojure" + } + ] + }, + "dynamic-variables": { + "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*", + "name": "meta.symbol.dynamic.clojure" + }, + "map": { + "begin": "(\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.map.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.map.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.map.end.clojure" + } + }, + "name": "meta.map.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "metadata": { + "patterns": [ + { + "begin": "(\\^\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.metadata.map.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.metadata.map.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.metadata.map.end.clojure" + } + }, + "name": "meta.metadata.map.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "begin": "(\\^)", + "end": "(\\s)", + "name": "meta.metadata.simple.clojure", + "patterns": [ + { + "include": "#keyword" + }, + { + "include": "$self" + } + ] + } + ] + }, + "quoted-sexp": { + "begin": "(['``]\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.clojure" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "3": { + "name": "punctuation.section.expression.end.clojure" + } + }, + "name": "meta.quoted-expression.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "regexp": { + "begin": "#\"", + "beginCaptures": { + "0": { + "name": "punctuation.definition.regexp.begin.clojure" + } + }, + "end": "\"", + "endCaptures": { + "0": { + "name": "punctuation.definition.regexp.end.clojure" + } + }, + "name": "string.regexp.clojure", + "patterns": [ + { + "include": "#regexp_escaped_char" + } + ] + }, + "regexp_escaped_char": { + "match": "\\\\.", + "name": "constant.character.escape.clojure" + }, + "set": { + "begin": "(\\#\\{)", + "beginCaptures": { + "1": { + "name": "punctuation.section.set.begin.clojure" + } + }, + "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", + "endCaptures": { + "1": { + "name": "punctuation.section.set.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.set.end.clojure" + } + }, + "name": "meta.set.clojure", + "patterns": [ + { + "include": "$self" + } + ] + }, + "sexp": { + "begin": "(\\()", + "beginCaptures": { + "1": { + "name": "punctuation.section.expression.begin.clojure" + } + }, + "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", + "endCaptures": { + "1": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.expression.end.trailing.clojure" + }, + "3": { + "name": "punctuation.section.expression.end.clojure" + } + }, + "name": "meta.expression.clojure", + "patterns": [ + { + "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "entity.global.clojure" + }, + { + "include": "$self" + } + ] + }, + { + "include": "#keyfn" + }, + { + "include": "#constants" + }, + { + "include": "#vector" + }, + { + "include": "#map" + }, + { + "include": "#set" + }, + { + "include": "#sexp" + }, + { + "match": "(?<=\\()(.+?)(?=\\s|\\))", + "captures": { + "1": { + "name": "entity.name.function.clojure" + } + }, + "patterns": [ + { + "include": "$self" + } + ] + }, + { + "include": "$self" + } + ] + }, + "shebang-comment": { + "begin": "^(#!)", + "beginCaptures": { + "1": { + "name": "punctuation.definition.comment.shebang.clojure" + } + }, + "end": "$", + "name": "comment.line.shebang.clojure" + }, + "string": { + "begin": "(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/", + "captures": { + "1": { + "name": "meta.symbol.namespace.clojure" + } + } + } + ] + }, + "symbol": { + "patterns": [ + { + "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", + "name": "meta.symbol.clojure" + } + ] + }, + "var": { + "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))", + "name": "meta.var.clojure" + }, + "vector": { + "begin": "(\\[)", + "beginCaptures": { + "1": { + "name": "punctuation.section.vector.begin.clojure" + } + }, + "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])", + "endCaptures": { + "1": { + "name": "punctuation.section.vector.end.trailing.clojure" + }, + "2": { + "name": "punctuation.section.vector.end.clojure" + } + }, + "name": "meta.vector.clojure", + "patterns": [ + { + "include": "$self" + } + ] + } + } +} diff --git a/test/sample.gc b/test/sample.gc index 7b78a15..9cd703a 100644 --- a/test/sample.gc +++ b/test/sample.gc @@ -85,22 +85,13 @@ a block comment (let* ((first-thing `(goal-src ,(string-append prefix (first sequence)) ,@deps)) (result (cons first-thing '())) (iter result)) - (let ((prev (first sequence)) (in-iter (rest sequence))) - (while (not (null? in-iter)) ;; (fmt #t "{} dep on {}\n" (first in-iter) prev) (let ((next (make-src-sequence-elt (first in-iter) prev prefix))) (set-cdr! iter (cons next '())) - (set! iter (cdr iter)) - ) - + (set! iter (cdr iter))) (set! prev (car in-iter)) - (set! in-iter (cdr in-iter)) - ) - ) - - `(begin ,@result) - ) - ) + (set! in-iter (cdr in-iter)))) + `(begin ,@result))) diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md deleted file mode 100644 index 67cc907..0000000 --- a/vsc-extension-quickstart.md +++ /dev/null @@ -1,29 +0,0 @@ -# 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/opengoal.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.