diff --git a/CHANGELOG.md b/CHANGELOG.md index ce34aa1..9109635 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Change Log +### 0.21.9 + +- HTML preview for template markdown text + ### 0.21.8 - Support triggering templates without a `state.json` file diff --git a/README.md b/README.md index 2badb10..c365d53 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The Accord Project extension helps developers to create, test and debug [Accord Project](https://accordproject.org) templates. -For a step-by-step guide on getting started with the extension's features, access our [Beginner Tutorial](https://docs.accordproject.org). For more comprehensive documentation, [follow this link.](https://docs.accordproject.org) +For a step-by-step guide on getting started with the extension's features, access our [VS Code Tutorial](https://docs.accordproject.org/docs/next/tutorial-vscode.html). For more comprehensive documentation, [follow this link.](https://docs.accordproject.org) ![Accord Project Extension Homepage](assets/VSCodeImage.png) @@ -29,6 +29,7 @@ Please visit the [Visual Studio Code Marketplace](https://marketplace.visualstud - Trigger templates (send them data and view the results) - Syntax highlighting for all files - Compilation and problem markers +- HTML preview for template markdown text ### Commands @@ -37,6 +38,9 @@ Please visit the [Visual Studio Code Marketplace](https://marketplace.visualstud - Generate PlantUML class diagram (context-click on root folder) - Trigger a template, parsing data from sample.md and passing in `request.json` and `state.json` (context-click on root folder) +### Views +- HTML preview for template text (open `grammar.tem.md` and then press the _Show Preview_ icon in the editor menu) + ### Quick Fixes - Add a variable to the template model if an undeclared variable is used in `grammar.tem.md`. _Note that the `model.cto` file must be open for the quick fix to be available._ diff --git a/assets/dark/open-preview.svg b/assets/dark/open-preview.svg new file mode 100644 index 0000000..fb64df5 --- /dev/null +++ b/assets/dark/open-preview.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/assets/light/open-preview.svg b/assets/light/open-preview.svg new file mode 100644 index 0000000..072cf29 --- /dev/null +++ b/assets/light/open-preview.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/client/package-lock.json b/client/package-lock.json index de56368..7f75272 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -1,22 +1,22 @@ { "name": "cicero-vscode-extension-client", - "version": "0.21.6", + "version": "0.21.9", "lockfileVersion": 1, "requires": true, "dependencies": { "@accordproject/cicero-core": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/cicero-core/-/cicero-core-0.21.0.tgz", - "integrity": "sha512-EK2HyAxyLbogMJtKZN8E0zjBVtW1eOFN4nfdfLRjd8FqcftC90PpxjumRNgUWuDeNXgRDxTO5bzO5VQRRNXX/Q==", - "requires": { - "@accordproject/concerto-core": "0.82.7", - "@accordproject/ergo-compiler": "^0.21.0", - "@accordproject/ergo-engine": "^0.21.0", - "@accordproject/markdown-cicero": "^0.12.0", - "@accordproject/markdown-common": "^0.12.0", - "@accordproject/markdown-html": "^0.12.0", - "@accordproject/markdown-slate": "^0.12.0", - "@accordproject/markdown-template": "^0.12.0", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/cicero-core/-/cicero-core-0.21.1.tgz", + "integrity": "sha512-L3BpH8irGIC3endojvr/nf1gHGAsyvDkiwJlpCNNlL9uaL82jYwooSWcgSSeYqnWZgkh3E5gEUhL6fm8Sk/g9w==", + "requires": { + "@accordproject/concerto-core": "0.82.8", + "@accordproject/ergo-compiler": "0.21.1", + "@accordproject/ergo-engine": "0.21.1", + "@accordproject/markdown-cicero": "^0.12.2", + "@accordproject/markdown-common": "^0.12.2", + "@accordproject/markdown-html": "^0.12.2", + "@accordproject/markdown-slate": "^0.12.2", + "@accordproject/markdown-template": "^0.12.2", "axios": "0.19.0", "debug": "4.1.0", "ietf-language-tag-regex": "0.0.5", @@ -30,50 +30,15 @@ "slash": "3.0.0", "uuid": "3.3.2", "xregexp": "4.2.4" - }, - "dependencies": { - "@accordproject/concerto-core": { - "version": "0.82.7", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-0.82.7.tgz", - "integrity": "sha512-b5zARaPPuQAppKj0NbJU49BYWHFO0+NKzeyk4oPSYCRgu3Ld4v5Yy3leWlMHspXSRZFRm/xpHGPh0CVBvgfC5Q==", - "requires": { - "axios": "0.19.0", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "jsome": "2.5.0", - "lorem-ipsum": "1.0.6", - "moment-mini": "2.22.1", - "slash": "3.0.0", - "triple-beam": "1.3.0", - "urijs": "1.19.1", - "uuid": "3.3.2", - "winston": "3.2.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } } }, "@accordproject/cicero-engine": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/cicero-engine/-/cicero-engine-0.21.0.tgz", - "integrity": "sha512-MylhOuLB7N9HbIuOuP4Wf0YIIvuxZti69lqZhudLr1JoZ5o0C9evFYJYYnlOLq4UFC9A4LFvlWKElkcxnfvmBA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/cicero-engine/-/cicero-engine-0.21.1.tgz", + "integrity": "sha512-lRW7cPbsvbFBbY1YvP4wHjoE2b0jmGPbo+7BIIrazj7L324mcBC4c0ebw1RCBQCMe8nXVIWMsbxJ5ZqoHGuZMg==", "requires": { - "@accordproject/cicero-core": "0.21.0", - "@accordproject/ergo-engine": "^0.21.0", + "@accordproject/cicero-core": "0.21.1", + "@accordproject/ergo-engine": "0.21.1", "moment-mini": "2.22.1" } }, @@ -265,11 +230,11 @@ } }, "@accordproject/ergo-compiler": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/ergo-compiler/-/ergo-compiler-0.21.0.tgz", - "integrity": "sha512-/FJhx4gGJbIMoigAoFjyoWYLDLLGzcsjDneTJhlqpLgBE2IuyaV305N98cUJxavIHQytmbqX2m0kmpG0eP2gKA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/ergo-compiler/-/ergo-compiler-0.21.1.tgz", + "integrity": "sha512-AIBL4Ef73mXX3vFZFcxs2tx5F0735aA2ANSN7VN0jyl5Jm1AaF+k7+uDMT/lkhU4k9hi2GVXhU4tKXX5+HTudQ==", "requires": { - "@accordproject/concerto-core": "0.82.7", + "@accordproject/concerto-core": "0.82.8", "acorn": "5.1.2", "debug": "4.1.0", "doctrine": "3.0.0", @@ -281,128 +246,90 @@ "winston": "3.2.1" }, "dependencies": { - "@accordproject/concerto-core": { - "version": "0.82.7", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-0.82.7.tgz", - "integrity": "sha512-b5zARaPPuQAppKj0NbJU49BYWHFO0+NKzeyk4oPSYCRgu3Ld4v5Yy3leWlMHspXSRZFRm/xpHGPh0CVBvgfC5Q==", - "requires": { - "axios": "0.19.0", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "jsome": "2.5.0", - "lorem-ipsum": "1.0.6", - "moment-mini": "2.22.1", - "slash": "3.0.0", - "triple-beam": "1.3.0", - "urijs": "1.19.1", - "uuid": "3.3.2", - "winston": "3.2.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - } - } - }, "fast-safe-stringify": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.5.tgz", "integrity": "sha512-QHbbCj2PmRSMNL9P7EuNBCeNXO06/E3t3XyQgb32AZul8wLmRa1Wbt2cm7GeUsX9OZGyXTQxMYcPOEBqARyhNw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, "@accordproject/ergo-engine": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/ergo-engine/-/ergo-engine-0.21.0.tgz", - "integrity": "sha512-ZeC0wqcVTNHJGaZQeRVtZ3GVAvnBbJhTwKC0fGWlUgeAAQ9AwuGVRiM45/TXFifdJxcrwMbLI1OlZiNfxvvbIw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/ergo-engine/-/ergo-engine-0.21.1.tgz", + "integrity": "sha512-RPEZffxFNMzm3iA/u+vfhxh0zy3HtEZExd+uEEq7wbESGmtHbOoz9QkUZK5Y7JlwdqGQVHATDXYuCmtFhTdaFQ==", "requires": { - "@accordproject/ergo-compiler": "0.21.0", + "@accordproject/ergo-compiler": "0.21.1", "moment-mini": "2.22.1", "vm2": "3.5.0" } }, "@accordproject/markdown-cicero": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-cicero/-/markdown-cicero-0.12.0.tgz", - "integrity": "sha512-5/PISqpOAgux77gA2pxxC72LVzgtnaiVw0UwfS121KV/wKmzwshQtKBcfCTqM3WkIkl6Jqb7so4Ipco7PRzSWw==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-cicero/-/markdown-cicero-0.12.2.tgz", + "integrity": "sha512-XYpSoeirvXj0jbF7pgWBL6r4ODapEV4D3sxOmeDl91iPORQTSFP1jbnpCiJonwJk4Wk0cvP9QkC7VLqh4CMUWQ==", "requires": { - "@accordproject/concerto-core": "^0.82.7", - "@accordproject/markdown-common": "0.12.0", - "@accordproject/markdown-it-cicero": "0.12.0", + "@accordproject/concerto-core": "^0.82.8", + "@accordproject/markdown-common": "0.12.2", + "@accordproject/markdown-it-cicero": "0.12.2", "markdown-it": "^11.0.0", "winston": "3.2.1" } }, "@accordproject/markdown-common": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-common/-/markdown-common-0.12.0.tgz", - "integrity": "sha512-YxankKheItZobiYvkrKAcWr4DaQkRMhQslSIRAJhjZJNNZJ49GkiuKay+AhLExHTHVBlcl+0js6UtyTBEZjhQA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-common/-/markdown-common-0.12.2.tgz", + "integrity": "sha512-bnpGTDClMlYMBr3jfD/SG6lWbIxhc05RTiTFKOdC8gjR0cDfbrKGBGMOcyEAmNJAVtkcu6d5Lf1+5nhqRzbWUA==", "requires": { - "@accordproject/concerto-core": "^0.82.7", + "@accordproject/concerto-core": "^0.82.8", "markdown-it": "^11.0.0", "winston": "3.2.1", "xmldom": "^0.1.27" } }, "@accordproject/markdown-html": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-html/-/markdown-html-0.12.0.tgz", - "integrity": "sha512-zMBNC0oFiTwmOPi1RzEdULZSsg8Up+ha7BMMOfO2TF/DuQL68Xunn23qLs/P4niKahB5iT3OfRqJCu/9XWfWqQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-html/-/markdown-html-0.12.2.tgz", + "integrity": "sha512-QpSwmNVJ6/eLXJzJpdxROw5lcKxr37E+oLFTzLctsp8JloMe9Npmse55nXNvA8OZoT/yAPsJfU/z87eTgg/Vwg==", "requires": { - "@accordproject/markdown-cicero": "0.12.0", - "@accordproject/markdown-common": "0.12.0", + "@accordproject/markdown-cicero": "0.12.2", + "@accordproject/markdown-common": "0.12.2", "jsdom": "^15.2.1", "type-of": "^2.0.1" } }, "@accordproject/markdown-it-cicero": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-cicero/-/markdown-it-cicero-0.12.0.tgz", - "integrity": "sha512-ESs6MVPFoGszCFcv0owaXqmvpeKb/PzSeEd5JHxFLszLTD/v0dQ7iUXRYhXHRhyQRIiNpLseRWRAWqasQ9cRFw==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-cicero/-/markdown-it-cicero-0.12.2.tgz", + "integrity": "sha512-LE6owBVG3SNy5w7Kckb+iIAiTIY8E7EXhPpacYNjnv3W0WhxjP4gCiebVyv/f0jwtynO8/iKft2fNvGNd0r3qQ==", "requires": { "markdown-it": "^11.0.0" } }, "@accordproject/markdown-it-template": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-template/-/markdown-it-template-0.12.0.tgz", - "integrity": "sha512-d24V3OH8nG6SgwY3dyUVkEd4+bQDjfZnyzd9NWM9Jmo7VXgl3dM962IP5yVTxJ458873Exk+07aAqccX0dBnbQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-template/-/markdown-it-template-0.12.2.tgz", + "integrity": "sha512-1muf83fSfrB9d5vwoXXj3qVVmUeL432hIJl7yltN4vvOd5i+olJO7gCmUZ7xUGCGwpx6B2AEMtir4vcUobtxwg==", "requires": { "markdown-it": "^11.0.0" } }, "@accordproject/markdown-slate": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-slate/-/markdown-slate-0.12.0.tgz", - "integrity": "sha512-K0z6oLJmhuWTLp51zweK6hrMUMCvsPvLrf+Z+GWGgLUePa8lmy7mMXv/H4UiX+hzKj0ty2Ab53eJ6soFY2J/EQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-slate/-/markdown-slate-0.12.2.tgz", + "integrity": "sha512-qw1LOHdRnePeSYQ0swWKkW6P/BORL08eJ0ACxCcnqLI9uXHENr5MMW/wk/20Iro0HXCJnDSiHgBUdw3mNw2OOw==", "requires": { - "@accordproject/markdown-cicero": "0.12.0" + "@accordproject/markdown-cicero": "0.12.2" } }, "@accordproject/markdown-template": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-template/-/markdown-template-0.12.0.tgz", - "integrity": "sha512-AoS4Es2PvmQwrMGmRJRRoAYvagnAUGYlOIydU23aMY7c48VdVvllwZu1PoqoU+9wDOYOiiYynEmNxp6uCfxaug==", - "requires": { - "@accordproject/concerto-core": "^0.82.7", - "@accordproject/markdown-cicero": "0.12.0", - "@accordproject/markdown-common": "0.12.0", - "@accordproject/markdown-it-template": "0.12.0", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-template/-/markdown-template-0.12.2.tgz", + "integrity": "sha512-xDV8T/WjTVuIQhkg141vRGoK3Pns049kc960JtM/sCdXIRmi6W7rSZj9hjG5aSBo6nHB8lkBuelLNtsdldJ/RA==", + "requires": { + "@accordproject/concerto-core": "^0.82.8", + "@accordproject/markdown-cicero": "0.12.2", + "@accordproject/markdown-common": "0.12.2", + "@accordproject/markdown-it-template": "0.12.2", "markdown-it": "^11.0.0", "moment-mini": "2.22.1", "parsimmon": "^1.13.0", @@ -410,9 +337,9 @@ } }, "@babel/runtime-corejs2": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.10.5.tgz", - "integrity": "sha512-LJwyb1ac//Jr2zrGTTaNJhrP1wYCgVw9rzHbQPogKXCTLQ60EEWgeNtuqs6cLsq64O557SYzziCrOxNp0rRi8w==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz", + "integrity": "sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q==", "requires": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" @@ -1237,9 +1164,9 @@ }, "dependencies": { "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" } } }, diff --git a/client/package.json b/client/package.json index 7a76959..9031a2c 100755 --- a/client/package.json +++ b/client/package.json @@ -4,7 +4,7 @@ "description": "Accord Project extension for Visual Studio Code, providing tools for template development.", "author": "Accord Project", "license": "Apache-2.0", - "version": "0.21.8", + "version": "0.21.9", "publisher": "accordproject", "repository": { "type": "git", @@ -18,12 +18,12 @@ "vscode-test": "^1.3.0" }, "dependencies": { - "@accordproject/cicero-core": "^0.21.0", - "@accordproject/cicero-engine": "^0.21.0", + "@accordproject/cicero-core": "^0.21.1", + "@accordproject/cicero-engine": "^0.21.1", "@accordproject/concerto-core": "^0.82.8", "@accordproject/concerto-tools": "^0.82.8", - "@accordproject/markdown-it-cicero": "^0.12.0", - "@accordproject/markdown-it-template": "^0.12.0", + "@accordproject/markdown-it-cicero": "^0.12.2", + "@accordproject/markdown-it-template": "^0.12.2", "vscode-languageclient": "^6.1.3" } } diff --git a/client/src/commandHandlers.ts b/client/src/commandHandlers.ts index 121ee4c..b1b08a1 100755 --- a/client/src/commandHandlers.ts +++ b/client/src/commandHandlers.ts @@ -17,7 +17,10 @@ import * as vscode from 'vscode'; import * as fs from 'fs'; import * as path from 'path'; import { TypeDefinitionRequest } from 'vscode-languageclient'; - +var md = require('markdown-it')() + .use(require('@accordproject/markdown-it-template')) + .use(require('@accordproject/markdown-it-cicero')); + let outputChannel: vscode.OutputChannel export function setOutputChannel(oc : vscode.OutputChannel) { @@ -167,4 +170,132 @@ export async function triggerClause(file: vscode.Uri) { } return false; -} \ No newline at end of file +} + + +export function getWebviewContent() { + const html = vscode.window.activeTextEditor ? md.render(vscode.window.activeTextEditor.document.getText()) : 'To display preview please open a grammar.tem.md file.'; + const styles = ` + .variable { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + a { + color: #0f52ba; + } + + .formula { + border: #AF54C4 1px solid; + border-radius: 2px; + background-color: grey; + cursor: pointer; + } + + .clause_block { + position: relative; + margin: 10px -10px; + background-color: darkgrey; + border: 1px solid black; + border-radius: 3px; + } + + .ulist_block { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + .olist_block { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + .join_inline { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + .if_inline { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + .else_inline { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + .optional_inline { + border: #A4BBE7 1px solid; + padding: 0px 3px; + border-radius: 2px; + background-color: grey; + } + + span { + position: relative; + display: inline; + } + span:after{ + display: block; + visibility: hidden; + position: absolute; + bottom: 0; + left: 20%; + opacity: 1 !important; + content: attr(class); /* might also use attr(title) */ + height: auto; + min-width: 100px; + padding: 1px 3px; + z-index: 999; + color: #FFFFFF; + text-decoration: none; + text-align: center; + border: 1px solid #141F3C; + background-color: #141F3C; + transition-duration: 0.25s; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 2px; + } + span:before { + position: absolute; + visibility: hidden; + width: 0; + height: 0; + left: 50%; + bottom: 0px; + opacity: 0; + content: ""; + border-style: solid; + border-width: 6px 6px 0 6px; + border-color: rgba(0,0,0,0.85) transparent transparent transparent; + } + span:hover:after{ visibility: visible; opacity: 1; bottom: 20px; } + span:hover:before{ visibility: visible; opacity: 1; bottom: 14px; } + ` + return ` + + + + + Template Preview + + + + ${html} + + `; + } \ No newline at end of file diff --git a/client/src/extension.ts b/client/src/extension.ts index bd36b6a..08462e3 100755 --- a/client/src/extension.ts +++ b/client/src/extension.ts @@ -16,9 +16,22 @@ import * as path from 'path'; import * as vscode from 'vscode'; -import { LanguageClient, LanguageClientOptions, ServerOptions, TransportKind } from 'vscode-languageclient'; +import { + LanguageClient, + LanguageClientOptions, + ServerOptions, + TransportKind +} from 'vscode-languageclient'; + +import { + exportArchive, + downloadModels, + exportClassDiagram, + triggerClause, + getWebviewContent, + setOutputChannel +} from './commandHandlers'; -import { exportArchive, downloadModels, exportClassDiagram, triggerClause, setOutputChannel } from './commandHandlers'; let client: LanguageClient; @@ -32,26 +45,47 @@ export function activate(context: vscode.ExtensionContext) { (process as any).browser = true; // The server is implemented in node - let serverModule = context.asAbsolutePath(path.join('server', 'out', 'server.js')); - + let serverModule = context.asAbsolutePath(path.join('server', 'out', 'server.js')); + // The debug options for the server - let debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] }; - + let debugOptions = { + execArgv: ["--nolazy", "--inspect=6009"] + }; + // If the extension is launched in debug mode then the debug server options are used // Otherwise the run options are used let serverOptions: ServerOptions = { - run : { module: serverModule, transport: TransportKind.ipc }, - debug: { module: serverModule, transport: TransportKind.ipc, options: debugOptions } + run: { + module: serverModule, + transport: TransportKind.ipc + }, + debug: { + module: serverModule, + transport: TransportKind.ipc, + options: debugOptions + } }; - + // Options to control the language client let clientOptions: LanguageClientOptions = { // Register the server for documents - documentSelector: [ - {scheme: 'file', language: 'ergo'}, - {scheme: 'file', language: 'concerto'}, - {scheme: 'file', language: 'ciceroMark'}, - {scheme: 'file', language: 'markdown', pattern: '**/sample*.md'} + documentSelector: [{ + scheme: 'file', + language: 'ergo' + }, + { + scheme: 'file', + language: 'concerto' + }, + { + scheme: 'file', + language: 'ciceroMark' + }, + { + scheme: 'file', + language: 'markdown', + pattern: '**/sample*.md' + } ], synchronize: { // Synchronize the setting section 'Cicero' to the server @@ -72,9 +106,54 @@ export function activate(context: vscode.ExtensionContext) { .registerCommand('cicero-vscode-extension.downloadModels', downloadModels)); context.subscriptions.push(vscode.commands .registerCommand('cicero-vscode-extension.exportClassDiagram', exportClassDiagram)); - context.subscriptions.push(vscode.commands - .registerCommand('cicero-vscode-extension.triggerClause', triggerClause)); - + context.subscriptions.push(vscode.commands + .registerCommand('cicero-vscode-extension.triggerClause', triggerClause)); + + let currentPanel: vscode.WebviewPanel | undefined = undefined; + + context.subscriptions.push( + vscode.commands.registerCommand('cicero-vscode-extension.showPreview', (file: vscode.Uri) => { + const columnToShowIn = vscode.ViewColumn.Beside; + + if (currentPanel) { + // If we already have a panel, show it in the target column + currentPanel.reveal(columnToShowIn); + } else { + // Otherwise, create a new panel + currentPanel = vscode.window.createWebviewPanel( + 'cicero', + 'Template Preview', + columnToShowIn, {} + ); + + currentPanel.webview.html = getWebviewContent(); + + // Reset when the current panel is closed + currentPanel.onDidDispose( + () => { + currentPanel = undefined; + }, + null, + context.subscriptions + ); + + // update the preview when the template grammar changes + vscode.workspace.onDidChangeTextDocument((event) => { + if (event.document.languageId === 'ciceroMark') { + currentPanel.webview.html = getWebviewContent();; + } + }); + + // update the preview when the active editor changes + vscode.window.onDidChangeActiveTextEditor((event) => { + if (event.document && event.document.languageId === 'ciceroMark') { + currentPanel.webview.html = getWebviewContent();; + } + }); + } + }) + ); + // Create the language client and start the client. client = new LanguageClient( 'cicero', @@ -85,17 +164,9 @@ export function activate(context: vscode.ExtensionContext) { // Start the client. This will also launch the server client.start(); - - // extend markdown preview - return { - extendMarkdownIt(md) { - return md.use(require('@accordproject/markdown-it-template')) - .use(require('@accordproject/markdown-it-cicero')) - } - } } - -export function deactivate(): Thenable | undefined { + +export function deactivate(): Thenable < void > | undefined { if (!client) { return undefined; } diff --git a/client/src/test/suite/extension.test.ts b/client/src/test/suite/extension.test.ts index 1bd733a..5298f8d 100755 --- a/client/src/test/suite/extension.test.ts +++ b/client/src/test/suite/extension.test.ts @@ -81,4 +81,9 @@ suite('Extension Tests', () => { }); }); + test('should execute showPreview command', () => { + vscode.commands.executeCommand('cicero-vscode-extension.showPreview').then((result) => { + assert.ok(result); + }); + }); }); diff --git a/package.json b/package.json index 89a6642..ee32d8f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "Accord Project extension for Visual Studio Code, providing tools for template development.", "author": "Accord Project", "license": "Apache-2.0", - "version": "0.21.8", + "version": "0.21.9", "icon": "icon.png", "repository": { "type": "git", @@ -33,7 +33,8 @@ "onCommand:cicero-vscode-extension.exportArchive", "onCommand:cicero-vscode-extension.downloadModels", "onCommand:cicero-vscode-extension.viewClassDiagram", - "onCommand:cicero-vscode-extension.triggerClause" + "onCommand:cicero-vscode-extension.triggerClause", + "onCommand:cicero-vscode-extension.showPreview" ], "main": "./client/out/extension", "contributes": { @@ -118,6 +119,15 @@ "command": "cicero-vscode-extension.triggerClause", "title": "Trigger", "category": "Accord Project" + }, + { + "command": "cicero-vscode-extension.showPreview", + "title": "Show Preview", + "icon": { + "light": "./assets/light/open-preview.svg", + "dark": "./assets/dark/open-preview.svg" + }, + "category": "Accord Project" } ], "menus": { @@ -140,7 +150,14 @@ { "when": "explorerResourceIsFolder", "command": "cicero-vscode-extension.triggerClause", - "group": "AccordProject@3" + "group": "AccordProject@4" + } + ], + "editor/title": [ + { + "when": "resourceLangId == ciceroMark", + "command": "cicero-vscode-extension.showPreview", + "group": "navigation" } ], "commandPalette": [ @@ -161,8 +178,7 @@ "when": "false" } ] - }, - "markdown.markdownItPlugins": true + } }, "scripts": { "vscode:prepublish": "npm run compile", diff --git a/server/package-lock.json b/server/package-lock.json index c801036..c6e5927 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1,22 +1,22 @@ { "name": "cicero-vscode-extension-server", - "version": "0.21.5", + "version": "0.21.9", "lockfileVersion": 1, "requires": true, "dependencies": { "@accordproject/cicero-core": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/cicero-core/-/cicero-core-0.21.0.tgz", - "integrity": "sha512-EK2HyAxyLbogMJtKZN8E0zjBVtW1eOFN4nfdfLRjd8FqcftC90PpxjumRNgUWuDeNXgRDxTO5bzO5VQRRNXX/Q==", - "requires": { - "@accordproject/concerto-core": "0.82.7", - "@accordproject/ergo-compiler": "^0.21.0", - "@accordproject/ergo-engine": "^0.21.0", - "@accordproject/markdown-cicero": "^0.12.0", - "@accordproject/markdown-common": "^0.12.0", - "@accordproject/markdown-html": "^0.12.0", - "@accordproject/markdown-slate": "^0.12.0", - "@accordproject/markdown-template": "^0.12.0", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/cicero-core/-/cicero-core-0.21.1.tgz", + "integrity": "sha512-L3BpH8irGIC3endojvr/nf1gHGAsyvDkiwJlpCNNlL9uaL82jYwooSWcgSSeYqnWZgkh3E5gEUhL6fm8Sk/g9w==", + "requires": { + "@accordproject/concerto-core": "0.82.8", + "@accordproject/ergo-compiler": "0.21.1", + "@accordproject/ergo-engine": "0.21.1", + "@accordproject/markdown-cicero": "^0.12.2", + "@accordproject/markdown-common": "^0.12.2", + "@accordproject/markdown-html": "^0.12.2", + "@accordproject/markdown-slate": "^0.12.2", + "@accordproject/markdown-template": "^0.12.2", "axios": "0.19.0", "debug": "4.1.0", "ietf-language-tag-regex": "0.0.5", @@ -32,44 +32,6 @@ "xregexp": "4.2.4" }, "dependencies": { - "@accordproject/concerto-core": { - "version": "0.82.7", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-0.82.7.tgz", - "integrity": "sha512-b5zARaPPuQAppKj0NbJU49BYWHFO0+NKzeyk4oPSYCRgu3Ld4v5Yy3leWlMHspXSRZFRm/xpHGPh0CVBvgfC5Q==", - "requires": { - "axios": "0.19.0", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "jsome": "2.5.0", - "lorem-ipsum": "1.0.6", - "moment-mini": "2.22.1", - "slash": "3.0.0", - "triple-beam": "1.3.0", - "urijs": "1.19.1", - "uuid": "3.3.2", - "winston": "3.2.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, "semver": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", @@ -116,11 +78,11 @@ } }, "@accordproject/ergo-compiler": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/ergo-compiler/-/ergo-compiler-0.21.0.tgz", - "integrity": "sha512-/FJhx4gGJbIMoigAoFjyoWYLDLLGzcsjDneTJhlqpLgBE2IuyaV305N98cUJxavIHQytmbqX2m0kmpG0eP2gKA==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/ergo-compiler/-/ergo-compiler-0.21.1.tgz", + "integrity": "sha512-AIBL4Ef73mXX3vFZFcxs2tx5F0735aA2ANSN7VN0jyl5Jm1AaF+k7+uDMT/lkhU4k9hi2GVXhU4tKXX5+HTudQ==", "requires": { - "@accordproject/concerto-core": "0.82.7", + "@accordproject/concerto-core": "0.82.8", "acorn": "5.1.2", "debug": "4.1.0", "doctrine": "3.0.0", @@ -132,128 +94,90 @@ "winston": "3.2.1" }, "dependencies": { - "@accordproject/concerto-core": { - "version": "0.82.7", - "resolved": "https://registry.npmjs.org/@accordproject/concerto-core/-/concerto-core-0.82.7.tgz", - "integrity": "sha512-b5zARaPPuQAppKj0NbJU49BYWHFO0+NKzeyk4oPSYCRgu3Ld4v5Yy3leWlMHspXSRZFRm/xpHGPh0CVBvgfC5Q==", - "requires": { - "axios": "0.19.0", - "debug": "4.1.1", - "fast-safe-stringify": "2.0.7", - "jsome": "2.5.0", - "lorem-ipsum": "1.0.6", - "moment-mini": "2.22.1", - "slash": "3.0.0", - "triple-beam": "1.3.0", - "urijs": "1.19.1", - "uuid": "3.3.2", - "winston": "3.2.1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "requires": { - "ms": "^2.1.1" - } - }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==" - } - } - }, "fast-safe-stringify": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.5.tgz", "integrity": "sha512-QHbbCj2PmRSMNL9P7EuNBCeNXO06/E3t3XyQgb32AZul8wLmRa1Wbt2cm7GeUsX9OZGyXTQxMYcPOEBqARyhNw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" } } }, "@accordproject/ergo-engine": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@accordproject/ergo-engine/-/ergo-engine-0.21.0.tgz", - "integrity": "sha512-ZeC0wqcVTNHJGaZQeRVtZ3GVAvnBbJhTwKC0fGWlUgeAAQ9AwuGVRiM45/TXFifdJxcrwMbLI1OlZiNfxvvbIw==", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@accordproject/ergo-engine/-/ergo-engine-0.21.1.tgz", + "integrity": "sha512-RPEZffxFNMzm3iA/u+vfhxh0zy3HtEZExd+uEEq7wbESGmtHbOoz9QkUZK5Y7JlwdqGQVHATDXYuCmtFhTdaFQ==", "requires": { - "@accordproject/ergo-compiler": "0.21.0", + "@accordproject/ergo-compiler": "0.21.1", "moment-mini": "2.22.1", "vm2": "3.5.0" } }, "@accordproject/markdown-cicero": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-cicero/-/markdown-cicero-0.12.0.tgz", - "integrity": "sha512-5/PISqpOAgux77gA2pxxC72LVzgtnaiVw0UwfS121KV/wKmzwshQtKBcfCTqM3WkIkl6Jqb7so4Ipco7PRzSWw==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-cicero/-/markdown-cicero-0.12.2.tgz", + "integrity": "sha512-XYpSoeirvXj0jbF7pgWBL6r4ODapEV4D3sxOmeDl91iPORQTSFP1jbnpCiJonwJk4Wk0cvP9QkC7VLqh4CMUWQ==", "requires": { - "@accordproject/concerto-core": "^0.82.7", - "@accordproject/markdown-common": "0.12.0", - "@accordproject/markdown-it-cicero": "0.12.0", + "@accordproject/concerto-core": "^0.82.8", + "@accordproject/markdown-common": "0.12.2", + "@accordproject/markdown-it-cicero": "0.12.2", "markdown-it": "^11.0.0", "winston": "3.2.1" } }, "@accordproject/markdown-common": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-common/-/markdown-common-0.12.0.tgz", - "integrity": "sha512-YxankKheItZobiYvkrKAcWr4DaQkRMhQslSIRAJhjZJNNZJ49GkiuKay+AhLExHTHVBlcl+0js6UtyTBEZjhQA==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-common/-/markdown-common-0.12.2.tgz", + "integrity": "sha512-bnpGTDClMlYMBr3jfD/SG6lWbIxhc05RTiTFKOdC8gjR0cDfbrKGBGMOcyEAmNJAVtkcu6d5Lf1+5nhqRzbWUA==", "requires": { - "@accordproject/concerto-core": "^0.82.7", + "@accordproject/concerto-core": "^0.82.8", "markdown-it": "^11.0.0", "winston": "3.2.1", "xmldom": "^0.1.27" } }, "@accordproject/markdown-html": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-html/-/markdown-html-0.12.0.tgz", - "integrity": "sha512-zMBNC0oFiTwmOPi1RzEdULZSsg8Up+ha7BMMOfO2TF/DuQL68Xunn23qLs/P4niKahB5iT3OfRqJCu/9XWfWqQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-html/-/markdown-html-0.12.2.tgz", + "integrity": "sha512-QpSwmNVJ6/eLXJzJpdxROw5lcKxr37E+oLFTzLctsp8JloMe9Npmse55nXNvA8OZoT/yAPsJfU/z87eTgg/Vwg==", "requires": { - "@accordproject/markdown-cicero": "0.12.0", - "@accordproject/markdown-common": "0.12.0", + "@accordproject/markdown-cicero": "0.12.2", + "@accordproject/markdown-common": "0.12.2", "jsdom": "^15.2.1", "type-of": "^2.0.1" } }, "@accordproject/markdown-it-cicero": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-cicero/-/markdown-it-cicero-0.12.0.tgz", - "integrity": "sha512-ESs6MVPFoGszCFcv0owaXqmvpeKb/PzSeEd5JHxFLszLTD/v0dQ7iUXRYhXHRhyQRIiNpLseRWRAWqasQ9cRFw==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-cicero/-/markdown-it-cicero-0.12.2.tgz", + "integrity": "sha512-LE6owBVG3SNy5w7Kckb+iIAiTIY8E7EXhPpacYNjnv3W0WhxjP4gCiebVyv/f0jwtynO8/iKft2fNvGNd0r3qQ==", "requires": { "markdown-it": "^11.0.0" } }, "@accordproject/markdown-it-template": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-template/-/markdown-it-template-0.12.0.tgz", - "integrity": "sha512-d24V3OH8nG6SgwY3dyUVkEd4+bQDjfZnyzd9NWM9Jmo7VXgl3dM962IP5yVTxJ458873Exk+07aAqccX0dBnbQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-it-template/-/markdown-it-template-0.12.2.tgz", + "integrity": "sha512-1muf83fSfrB9d5vwoXXj3qVVmUeL432hIJl7yltN4vvOd5i+olJO7gCmUZ7xUGCGwpx6B2AEMtir4vcUobtxwg==", "requires": { "markdown-it": "^11.0.0" } }, "@accordproject/markdown-slate": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-slate/-/markdown-slate-0.12.0.tgz", - "integrity": "sha512-K0z6oLJmhuWTLp51zweK6hrMUMCvsPvLrf+Z+GWGgLUePa8lmy7mMXv/H4UiX+hzKj0ty2Ab53eJ6soFY2J/EQ==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-slate/-/markdown-slate-0.12.2.tgz", + "integrity": "sha512-qw1LOHdRnePeSYQ0swWKkW6P/BORL08eJ0ACxCcnqLI9uXHENr5MMW/wk/20Iro0HXCJnDSiHgBUdw3mNw2OOw==", "requires": { - "@accordproject/markdown-cicero": "0.12.0" + "@accordproject/markdown-cicero": "0.12.2" } }, "@accordproject/markdown-template": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@accordproject/markdown-template/-/markdown-template-0.12.0.tgz", - "integrity": "sha512-AoS4Es2PvmQwrMGmRJRRoAYvagnAUGYlOIydU23aMY7c48VdVvllwZu1PoqoU+9wDOYOiiYynEmNxp6uCfxaug==", - "requires": { - "@accordproject/concerto-core": "^0.82.7", - "@accordproject/markdown-cicero": "0.12.0", - "@accordproject/markdown-common": "0.12.0", - "@accordproject/markdown-it-template": "0.12.0", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@accordproject/markdown-template/-/markdown-template-0.12.2.tgz", + "integrity": "sha512-xDV8T/WjTVuIQhkg141vRGoK3Pns049kc960JtM/sCdXIRmi6W7rSZj9hjG5aSBo6nHB8lkBuelLNtsdldJ/RA==", + "requires": { + "@accordproject/concerto-core": "^0.82.8", + "@accordproject/markdown-cicero": "0.12.2", + "@accordproject/markdown-common": "0.12.2", + "@accordproject/markdown-it-template": "0.12.2", "markdown-it": "^11.0.0", "moment-mini": "2.22.1", "parsimmon": "^1.13.0", @@ -261,9 +185,9 @@ } }, "@babel/runtime-corejs2": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.10.5.tgz", - "integrity": "sha512-LJwyb1ac//Jr2zrGTTaNJhrP1wYCgVw9rzHbQPogKXCTLQ60EEWgeNtuqs6cLsq64O557SYzziCrOxNp0rRi8w==", + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs2/-/runtime-corejs2-7.11.2.tgz", + "integrity": "sha512-AC/ciV28adSSpEkBglONBWq4/Lvm6GAZuxIoyVtsnUpZMl0bxLtoChEnYAkP+47KyOCayZanojtflUEUJtR/6Q==", "requires": { "core-js": "^2.6.5", "regenerator-runtime": "^0.13.4" @@ -673,14 +597,6 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "optional": true - } } }, "esprima": { @@ -694,9 +610,9 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "execa": { "version": "1.0.0", @@ -807,9 +723,9 @@ } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -825,11 +741,11 @@ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", - "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", "requires": { - "ajv": "^6.5.5", + "ajv": "^6.12.3", "har-schema": "^2.0.0" } }, @@ -987,9 +903,9 @@ }, "dependencies": { "acorn": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", - "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==" + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz", + "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==" } } }, @@ -1554,6 +1470,12 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", diff --git a/server/package.json b/server/package.json index 96839fe..023fc94 100755 --- a/server/package.json +++ b/server/package.json @@ -1,7 +1,7 @@ { "name": "cicero-vscode-extension-server", "description": "A language server for Accord Project templates", - "version": "0.21.8", + "version": "0.21.9", "license": "Apache-2.0", "engines": { "node": "*" @@ -11,13 +11,13 @@ "url": "https://github.com/accordproject/cicero-vscode-extension" }, "dependencies": { - "@accordproject/cicero-core": "^0.21.0", + "@accordproject/cicero-core": "^0.21.1", "@accordproject/concerto-core": "^0.82.8", - "@accordproject/ergo-compiler": "^0.21.0", - "@accordproject/ergo-engine": "^0.21.0", - "@accordproject/markdown-template": "^0.12.0", + "@accordproject/ergo-compiler": "^0.21.1", + "@accordproject/ergo-engine": "^0.21.1", + "@accordproject/markdown-template": "^0.12.2", "fast-safe-stringify": "2.0.6", - "glob": "^7.1.4", + "glob": "^7.1.6", "vscode-languageserver": "^6.1.1", "vscode-languageserver-textdocument": "^1.0.1", "vscode-uri": "^1.0.6"