diff --git a/CHANGELOG.md b/CHANGELOG.md index 18252eb..7128620 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased] +## [0.2.0] - 2022-10-21 ### Added @@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * Integrated libmidi library into Musique codebase * Moved from custom ALSA interaction to using rtmidi for MIDI I/O operations +* VSCode extension has been re-created ### Removed diff --git a/README.md b/README.md index 2f42049..b467e17 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ au BufRead,BufNewFile *.mq set filetype=musique ### Visual Studio Code -Skopiuj katalog [etc/editor/musique-vscode](etc/editor/musique-vscode) do folderu `/.vscode/extensions` i uruchom ponownie program VSCode. +Skopiuj katalog [editor/vscode-musique](editor/vscode-musique) do folderu `/.vscode/extensions` i uruchom ponownie program VSCode. # Thanks to diff --git a/editor/vscode-musique/.vscode/launch.json b/editor/vscode-musique/.vscode/launch.json new file mode 100644 index 0000000..0e191b5 --- /dev/null +++ b/editor/vscode-musique/.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/editor/vscode-musique/.vscodeignore b/editor/vscode-musique/.vscodeignore new file mode 100644 index 0000000..f369b5e --- /dev/null +++ b/editor/vscode-musique/.vscodeignore @@ -0,0 +1,4 @@ +.vscode/** +.vscode-test/** +.gitignore +vsc-extension-quickstart.md diff --git a/editor/vscode-musique/CHANGELOG.md b/editor/vscode-musique/CHANGELOG.md new file mode 100644 index 0000000..410569c --- /dev/null +++ b/editor/vscode-musique/CHANGELOG.md @@ -0,0 +1,9 @@ +# Change Log + +All notable changes to the "musique" 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/editor/vscode-musique/README.md b/editor/vscode-musique/README.md new file mode 100644 index 0000000..6f9b37f --- /dev/null +++ b/editor/vscode-musique/README.md @@ -0,0 +1,65 @@ +# musique README + +This is the README for your extension "musique". 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 + +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, 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/editor/vscode-musique/language-configuration.json b/editor/vscode-musique/language-configuration.json new file mode 100644 index 0000000..28fceae --- /dev/null +++ b/editor/vscode-musique/language-configuration.json @@ -0,0 +1,26 @@ +{ + "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": [ + ["{", "}"], + ["[", "]"], + ["(", ")"] + ] +} \ No newline at end of file diff --git a/editor/vscode-musique/package.json b/editor/vscode-musique/package.json new file mode 100644 index 0000000..75944aa --- /dev/null +++ b/editor/vscode-musique/package.json @@ -0,0 +1,25 @@ +{ + "name": "musique", + "displayName": "Musique", + "description": "Support for Musique, programming language for musical expression", + "version": "0.0.1", + "engines": { + "vscode": "^1.72.0" + }, + "categories": [ + "Programming Languages" + ], + "contributes": { + "languages": [{ + "id": "musique", + "aliases": ["Musique", "musique"], + "extensions": [".mq"], + "configuration": "./language-configuration.json" + }], + "grammars": [{ + "language": "musique", + "scopeName": "source.musique", + "path": "./syntaxes/musique.tmLanguage.json" + }] + } +} diff --git a/editor/vscode-musique/syntaxes/musique.tmLanguage.json b/editor/vscode-musique/syntaxes/musique.tmLanguage.json new file mode 100644 index 0000000..89c16f7 --- /dev/null +++ b/editor/vscode-musique/syntaxes/musique.tmLanguage.json @@ -0,0 +1,64 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "Musique", + "foldingStartMarker": "\\[", + "foldingStopMarker": "^\\s*\\]|^\\s\\]", + "fileTypes": [ + ".mq" + ], + "patterns": [ + { + "include": "#numeric" + }, + { + "match": ":=", + "name": "keyword.operator.declaration" + }, + { + "match": "--[^-].*$", + "name": "comment.line.double-dash" + }, + { + "begin": "--+", + "end": "--+", + "name": "comment.block" + }, + { + "match": "\\b(nil)\\b", + "name": "constant.language.nil" + }, + { + "match": "\\b(a|b|c|d|e|f|g|h)[#sfb]?\\d*\\b", + "name": "constant.language.music" + }, + { + "match": "\\b(true|false)\\b", + "name": "constant.language.boolean" + }, + { + "match": "\\b(bpm|call|ceil|chord|down|flat|floor|fold|for|hash|if|instrument|len|max|min|mix|note_off|note_on|nprimes|oct|par|partition|permute|pgmchange|play|program_change|range|reverse|rotate|round|scan|shuffle|sim|sort|try|typeof|uniq|unique|up|update|say)\\b", + "name": "entity.name.function.builtins" + }, + { + "match": "(\\*|\\+|\\-|\/|\\\\)", + "name": "keyword.operator.arithmetic" + }, + { + "match": "---+()", + "begin": "/---+/", + "end": "/---+/", + "name": "comment.block.musique" + } + ], + "repository": { + "numeric": { + "patterns": [ + { + "match": "(?/.vscode/extensions` folder and restart Code. +* To share your extension with the world, read on https://code.visualstudio.com/docs about publishing an extension.