From cc4f636a8ae18e7a9fce144d896556219f4190f2 Mon Sep 17 00:00:00 2001 From: Will Furphy <6441631+wfurphy@users.noreply.github.com> Date: Fri, 13 Jan 2023 10:37:10 +1100 Subject: [PATCH] Prepare for Marketplace --- .vscodeignore | 3 +-- CHANGELOG.md | 10 ++++++---- README.md | 14 ++++++-------- images/vscode-bc-js-256.png | Bin 0 -> 11779 bytes package.json | 37 ++++++++++++++++++++++++++++-------- 5 files changed, 42 insertions(+), 22 deletions(-) create mode 100644 images/vscode-bc-js-256.png diff --git a/.vscodeignore b/.vscodeignore index 5efeb31..5bdba83 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -2,5 +2,4 @@ .vscode-test/** .gitignore vsc-extension-quickstart.md -*.vsix -images \ No newline at end of file +*.vsix \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c497c0..0baa995 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,6 @@ -# Change Log +# Button Card JS for VSCode Change Log -All notable changes to the "vscode-home-assistant-button-card-js" extension will be documented in this file. - -Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file. +All notable changes to the `vscode-button-card-js` extension will be documented in this file. Using [Semantic Versioning](https://semver.org/). ## [Unreleased] @@ -17,3 +15,7 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how ### Added - JS Tripple Square Brackets Injection Grammar for YAML language. + +## [0.2.1] - 13th January 2023 + +- Prepare for VSCode Marketplace \ No newline at end of file diff --git a/README.md b/README.md index 46506ed..5d0836a 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Button Card Javascript Syntax Highlighting in VSCode -![release](https://img.shields.io/github/v/release/wfurphy/vscode-home-assistant-button-card-js) -![license](https://img.shields.io/github/license/wfurphy/vscode-home-assistant-button-card-js) +![release](https://img.shields.io/github/v/release/wfurphy/vscode-button-card-js) +![license](https://img.shields.io/github/license/wfurphy/vscode-button-card-js) This is a very niche extension for Visual Studio Code which provides syntax highlighting of Javascript code blocks in YAML which are enclosed by triple square brackets (`[[[ ... ]]]`). Used when configuring the advanced _javascript templates_ properties of [Button-Card](https://github.com/custom-cards/button-card) cards for Home Assistant Lovelace dashboards. @@ -9,12 +9,10 @@ This is a very niche extension for Visual Studio Code which provides syntax high * "Double quoted" and block YAML strings supported * Works with the standard YAML language and the `home-assistant` YAML language created by the [Home Assistant Config Helper](https://github.com/keesschollaart81/vscode-home-assistant) plugin. -## Preview - -![VSCode BC JS Example](images/vscodebcjs-example.png) +_I made this while I was working on [Creative Button Card Templates](https://github.com/wfurphy/creative-button-card-templates) and could not handle writing any more JS without syntax highlighting. Hopefully it gives someone else the same relief it gave me._ -_The preview above is using the OneDark Pro theme. This plugin only provides language grammar and will work with any theme you currently use._ +## Preview -## Installation +![VSCode BC JS Example](https://raw.githubusercontent.com/wfurphy/vscode-button-card-js/master/images/vscodebcjs-example.png) -I will eventually publish this on the marketplace. Until then you need to [download the latest release](https://github.com/wfurphy/vscode-home-assistant-button-card-js/releases/latest) as a VSIX file. Then in Visual Studio Code navigate to your Extensions screen. From the three dots at the top right of the Extension browser chose "Install from VSIX...", select the file and follow the prompts. Restart Visual Studio Code. Enjoy. +_The preview above is using the OneDark Pro theme, however this plugin will work with any theme that supports yaml and javascript._ diff --git a/images/vscode-bc-js-256.png b/images/vscode-bc-js-256.png new file mode 100644 index 0000000000000000000000000000000000000000..e7354f7af0e898db975cfed2a096f3a5918d435c GIT binary patch literal 11779 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