From f3afccd444e167fc16fc8ba5bda2ec26676439ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Fri, 15 Nov 2019 21:01:01 +0100 Subject: [PATCH 01/20] migrate to vscode-test --- .gitattributes | 4 +- package.json | 13 ++++-- src/test/index.ts | 22 ----------- src/test/runTest.ts | 24 ++++++++++++ .../fixtures/expected}/issue_6.html | 0 .../fixtures/expected}/issues.html | 0 .../fixtures/expected}/scoped/colortext.html | 0 .../fixtures/expected}/scoped/headings.html | 0 .../fixtures/expected}/scoped/images.html | 0 .../fixtures/expected}/scoped/lists.html | 0 .../fixtures/expected}/scoped/tables.html | 0 .../fixtures/expected}/test.html | 0 .../fixtures}/testfiles/media/testing_cat.gif | Bin .../testfiles/nix/issue_6.confluence | 0 .../fixtures}/testfiles/nix/issues.confluence | 0 .../testfiles/nix/scoped/colortext.confluence | 0 .../testfiles/nix/scoped/headings.confluence | 0 .../testfiles/nix/scoped/images.confluence | 0 .../testfiles/nix/scoped/lists.confluence | 0 .../testfiles/nix/scoped/tables.confluence | 0 .../fixtures}/testfiles/nix/test.confluence | 0 .../testfiles/win/issue_6.confluence | 0 .../fixtures}/testfiles/win/issues.confluence | 0 .../testfiles/win/scoped/colortext.confluence | 0 .../testfiles/win/scoped/headings.confluence | 0 .../testfiles/win/scoped/lists.confluence | 0 .../testfiles/win/scoped/tables.confluence | 0 .../fixtures}/testfiles/win/test.confluence | 0 src/test/suite/index.ts | 37 ++++++++++++++++++ src/test/{ => suite}/markupParser.test.ts | 11 +++--- 30 files changed, 78 insertions(+), 33 deletions(-) delete mode 100644 src/test/index.ts create mode 100644 src/test/runTest.ts rename src/test/{resources/fixtures => suite/fixtures/expected}/issue_6.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/issues.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/scoped/colortext.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/scoped/headings.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/scoped/images.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/scoped/lists.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/scoped/tables.html (100%) rename src/test/{resources/fixtures => suite/fixtures/expected}/test.html (100%) rename src/test/{ => suite/fixtures}/testfiles/media/testing_cat.gif (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/issue_6.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/issues.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/scoped/colortext.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/scoped/headings.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/scoped/images.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/scoped/lists.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/scoped/tables.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/nix/test.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/issue_6.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/issues.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/scoped/colortext.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/scoped/headings.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/scoped/lists.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/scoped/tables.confluence (100%) rename src/test/{ => suite/fixtures}/testfiles/win/test.confluence (100%) create mode 100644 src/test/suite/index.ts rename src/test/{ => suite}/markupParser.test.ts (85%) diff --git a/.gitattributes b/.gitattributes index 13f5c69..1562bd4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,3 @@ * text=auto -/src/test/testfiles/nix/**/*.confluence text eol=lf -/src/test/testfiles/win/**/*.confluence text eol=crlf +**/nix/**/*.confluence text eol=lf +**/win/**/*.confluence text eol=crlf diff --git a/package.json b/package.json index 38b13d4..98f46f6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "confluence-markup", "displayName": "Confluence markup", - "version": "0.1.8", + "version": "0.1.9", "publisher": "denco", "description": "Confluence markup language support for Visual Studio Code", "keywords": [ @@ -124,19 +124,24 @@ "vscode:prepublish": "npm run compile", "compile": "tsc -p ./", "watch": "tsc -watch -p ./", - "postinstall": "node ./node_modules/vscode/bin/install", - "test": "npm run clean && npm run compile && node ./node_modules/vscode/bin/test", + "pretest": "npm run clean && npm run compile", + "test": "node ./out/test/runTest.js", "package": "./node_modules/.bin/vsce package", "clean": "rm -rf ./out", "clean-all": "rm -f ./confluence-markup*.vsix; rm -rf ./.vscode-test; rm -rf ./out; rm -rf ./node_modules" }, "devDependencies": { + "@types/glob": "^7.1.1", "@types/mocha": "^5.2.7", "@types/node": "^12.12.7", + "@types/vscode": "^1.40.0", "tslint": "^5.18.0", "typescript": "^3.5.3", "vsce": "^1.66.0", - "vscode": "^1.1.36", + "vscode-test": "^1.2.3", + "glob": "^7.1.4", + "mocha": "^6.1.4", + "source-map-support": "^0.5.12", "html-formatter": "^0.1.9" }, "__metadata": { diff --git a/src/test/index.ts b/src/test/index.ts deleted file mode 100644 index 9fa2ea0..0000000 --- a/src/test/index.ts +++ /dev/null @@ -1,22 +0,0 @@ -// -// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING -// -// This file is providing the test runner to use when running extension tests. -// By default the test runner in use is Mocha based. -// -// You can provide your own test runner if you want to override it by exporting -// a function run(testRoot: string, clb: (error:Error) => void) that the extension -// host can call to run the tests. The test runner is expected to use console.log -// to report the results back to the caller. When the tests are finished, return -// a possible error to the callback or null if none. - -import * as testRunner from 'vscode/lib/testrunner'; - -// You can directly control Mocha options by uncommenting the following lines -// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info -testRunner.configure({ - ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) - useColors: true // colored output from test results -}); - -module.exports = testRunner; \ No newline at end of file diff --git a/src/test/runTest.ts b/src/test/runTest.ts new file mode 100644 index 0000000..704f46e --- /dev/null +++ b/src/test/runTest.ts @@ -0,0 +1,24 @@ + +import * as path from 'path'; + +import { runTests } from 'vscode-test'; + +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + const extensionDevelopmentPath = path.resolve(__dirname, '../../'); + + // The path to the extension test script + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve(__dirname, './suite/index'); + + // Download VS Code, unzip it and run the integration test + await runTests({ extensionDevelopmentPath, extensionTestsPath }); + } catch (err) { + console.error('Failed to run tests'); + process.exit(1); + } +} + +main(); \ No newline at end of file diff --git a/src/test/resources/fixtures/issue_6.html b/src/test/suite/fixtures/expected/issue_6.html similarity index 100% rename from src/test/resources/fixtures/issue_6.html rename to src/test/suite/fixtures/expected/issue_6.html diff --git a/src/test/resources/fixtures/issues.html b/src/test/suite/fixtures/expected/issues.html similarity index 100% rename from src/test/resources/fixtures/issues.html rename to src/test/suite/fixtures/expected/issues.html diff --git a/src/test/resources/fixtures/scoped/colortext.html b/src/test/suite/fixtures/expected/scoped/colortext.html similarity index 100% rename from src/test/resources/fixtures/scoped/colortext.html rename to src/test/suite/fixtures/expected/scoped/colortext.html diff --git a/src/test/resources/fixtures/scoped/headings.html b/src/test/suite/fixtures/expected/scoped/headings.html similarity index 100% rename from src/test/resources/fixtures/scoped/headings.html rename to src/test/suite/fixtures/expected/scoped/headings.html diff --git a/src/test/resources/fixtures/scoped/images.html b/src/test/suite/fixtures/expected/scoped/images.html similarity index 100% rename from src/test/resources/fixtures/scoped/images.html rename to src/test/suite/fixtures/expected/scoped/images.html diff --git a/src/test/resources/fixtures/scoped/lists.html b/src/test/suite/fixtures/expected/scoped/lists.html similarity index 100% rename from src/test/resources/fixtures/scoped/lists.html rename to src/test/suite/fixtures/expected/scoped/lists.html diff --git a/src/test/resources/fixtures/scoped/tables.html b/src/test/suite/fixtures/expected/scoped/tables.html similarity index 100% rename from src/test/resources/fixtures/scoped/tables.html rename to src/test/suite/fixtures/expected/scoped/tables.html diff --git a/src/test/resources/fixtures/test.html b/src/test/suite/fixtures/expected/test.html similarity index 100% rename from src/test/resources/fixtures/test.html rename to src/test/suite/fixtures/expected/test.html diff --git a/src/test/testfiles/media/testing_cat.gif b/src/test/suite/fixtures/testfiles/media/testing_cat.gif similarity index 100% rename from src/test/testfiles/media/testing_cat.gif rename to src/test/suite/fixtures/testfiles/media/testing_cat.gif diff --git a/src/test/testfiles/nix/issue_6.confluence b/src/test/suite/fixtures/testfiles/nix/issue_6.confluence similarity index 100% rename from src/test/testfiles/nix/issue_6.confluence rename to src/test/suite/fixtures/testfiles/nix/issue_6.confluence diff --git a/src/test/testfiles/nix/issues.confluence b/src/test/suite/fixtures/testfiles/nix/issues.confluence similarity index 100% rename from src/test/testfiles/nix/issues.confluence rename to src/test/suite/fixtures/testfiles/nix/issues.confluence diff --git a/src/test/testfiles/nix/scoped/colortext.confluence b/src/test/suite/fixtures/testfiles/nix/scoped/colortext.confluence similarity index 100% rename from src/test/testfiles/nix/scoped/colortext.confluence rename to src/test/suite/fixtures/testfiles/nix/scoped/colortext.confluence diff --git a/src/test/testfiles/nix/scoped/headings.confluence b/src/test/suite/fixtures/testfiles/nix/scoped/headings.confluence similarity index 100% rename from src/test/testfiles/nix/scoped/headings.confluence rename to src/test/suite/fixtures/testfiles/nix/scoped/headings.confluence diff --git a/src/test/testfiles/nix/scoped/images.confluence b/src/test/suite/fixtures/testfiles/nix/scoped/images.confluence similarity index 100% rename from src/test/testfiles/nix/scoped/images.confluence rename to src/test/suite/fixtures/testfiles/nix/scoped/images.confluence diff --git a/src/test/testfiles/nix/scoped/lists.confluence b/src/test/suite/fixtures/testfiles/nix/scoped/lists.confluence similarity index 100% rename from src/test/testfiles/nix/scoped/lists.confluence rename to src/test/suite/fixtures/testfiles/nix/scoped/lists.confluence diff --git a/src/test/testfiles/nix/scoped/tables.confluence b/src/test/suite/fixtures/testfiles/nix/scoped/tables.confluence similarity index 100% rename from src/test/testfiles/nix/scoped/tables.confluence rename to src/test/suite/fixtures/testfiles/nix/scoped/tables.confluence diff --git a/src/test/testfiles/nix/test.confluence b/src/test/suite/fixtures/testfiles/nix/test.confluence similarity index 100% rename from src/test/testfiles/nix/test.confluence rename to src/test/suite/fixtures/testfiles/nix/test.confluence diff --git a/src/test/testfiles/win/issue_6.confluence b/src/test/suite/fixtures/testfiles/win/issue_6.confluence similarity index 100% rename from src/test/testfiles/win/issue_6.confluence rename to src/test/suite/fixtures/testfiles/win/issue_6.confluence diff --git a/src/test/testfiles/win/issues.confluence b/src/test/suite/fixtures/testfiles/win/issues.confluence similarity index 100% rename from src/test/testfiles/win/issues.confluence rename to src/test/suite/fixtures/testfiles/win/issues.confluence diff --git a/src/test/testfiles/win/scoped/colortext.confluence b/src/test/suite/fixtures/testfiles/win/scoped/colortext.confluence similarity index 100% rename from src/test/testfiles/win/scoped/colortext.confluence rename to src/test/suite/fixtures/testfiles/win/scoped/colortext.confluence diff --git a/src/test/testfiles/win/scoped/headings.confluence b/src/test/suite/fixtures/testfiles/win/scoped/headings.confluence similarity index 100% rename from src/test/testfiles/win/scoped/headings.confluence rename to src/test/suite/fixtures/testfiles/win/scoped/headings.confluence diff --git a/src/test/testfiles/win/scoped/lists.confluence b/src/test/suite/fixtures/testfiles/win/scoped/lists.confluence similarity index 100% rename from src/test/testfiles/win/scoped/lists.confluence rename to src/test/suite/fixtures/testfiles/win/scoped/lists.confluence diff --git a/src/test/testfiles/win/scoped/tables.confluence b/src/test/suite/fixtures/testfiles/win/scoped/tables.confluence similarity index 100% rename from src/test/testfiles/win/scoped/tables.confluence rename to src/test/suite/fixtures/testfiles/win/scoped/tables.confluence diff --git a/src/test/testfiles/win/test.confluence b/src/test/suite/fixtures/testfiles/win/test.confluence similarity index 100% rename from src/test/testfiles/win/test.confluence rename to src/test/suite/fixtures/testfiles/win/test.confluence diff --git a/src/test/suite/index.ts b/src/test/suite/index.ts new file mode 100644 index 0000000..162fe71 --- /dev/null +++ b/src/test/suite/index.ts @@ -0,0 +1,37 @@ +import * as path from 'path'; +import * as Mocha from 'mocha'; +import * as glob from 'glob'; + +export function run(): Promise { + // Create the mocha test + const mocha = new Mocha({ + ui: 'tdd' + }); + mocha.useColors(true); + + const testsRoot = path.resolve(__dirname, '..'); + + return new Promise((c, e) => { + glob('**/**.test.js', { cwd: testsRoot }, (err, files) => { + if (err) { + return e(err); + } + + // Add files to the test suite + files.forEach(f => mocha.addFile(path.resolve(testsRoot, f))); + + try { + // Run the mocha test + mocha.run(failures => { + if (failures > 0) { + e(new Error(`${failures} tests failed.`)); + } else { + c(); + } + }); + } catch (err) { + e(err); + } + }); + }); +} \ No newline at end of file diff --git a/src/test/markupParser.test.ts b/src/test/suite/markupParser.test.ts similarity index 85% rename from src/test/markupParser.test.ts rename to src/test/suite/markupParser.test.ts index d04824f..de615a6 100644 --- a/src/test/markupParser.test.ts +++ b/src/test/suite/markupParser.test.ts @@ -3,13 +3,13 @@ import * as assert from 'assert'; import * as vscode from 'vscode'; import * as path from 'path'; -import { parseMarkup, cssUri } from '../markupParser'; +import { parseMarkup, cssUri } from '../../markupParser'; import * as fs from 'fs'; const HTML_FORMATTER = require('html-formatter'); -const TEST_FILES_ROOT = path.join(__dirname, "../../src/test/testfiles"); -const FIXTURES_ROOT = path.join(__dirname, "../../src/test/resources/fixtures"); +const TEST_FILES_ROOT = path.join(__dirname, "../../../src/test/suite/fixtures/testfiles"); +const FIXTURES_ROOT = path.join(__dirname, "../../../src/test/suite/fixtures/expected"); function walkdirSync(dir: string): string[] { return fs.readdirSync(dir).reduce(function (result: string[], file) { @@ -24,11 +24,12 @@ function isConfluence(element: string, index: number, array: string[]): boolean } // Defines a Mocha test suite to group tests of similar kind together -suite("markupParser Tests", function () { +suite("MarkupParser Tests", function () { // Defines a Mocha unit test test("Test CSS Uri", function () { - const expected = vscode.Uri.file(path.join(__dirname, "../../media/css/dummy.css")); + const expected = vscode.Uri.file(path.join(__dirname, "../../../media/css/dummy.css")); + console.log(expected.fsPath) const css = cssUri("dummy.css"); assert.notEqual(css, undefined); if (css) { From 9893db0c0c31fe3efc31c02e2c373392cfb21f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Sat, 16 Nov 2019 14:29:11 +0100 Subject: [PATCH 02/20] refactor, add dynamic word wrap for code blocks --- media/css/confluence.css | 49 ++++++++++++---------------------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/media/css/confluence.css b/media/css/confluence.css index 61810b1..53d7c36 100644 --- a/media/css/confluence.css +++ b/media/css/confluence.css @@ -1,15 +1,5 @@ body { - font-family: -apple-system, - BlinkMacSystemFont, - "Segoe UI", - Roboto, - Helvetica, - Arial, - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol"; - font-size: 14px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; padding: 0 26px; line-height: 1em; word-wrap: break-word; @@ -24,11 +14,7 @@ a { color: #4080D0; text-decoration: none; } - -a:focus, -input:focus, -select:focus, -textarea:focus { +a:focus, input:focus, select:focus, textarea:focus { outline: 1px solid -webkit-focus-ring-color; outline-offset: -1px; } @@ -46,9 +32,7 @@ h1 { border-bottom-style: solid; } -h1, -h2, -h3 { +h1, h2, h3 { font-weight: normal; } @@ -58,29 +42,26 @@ blockquote { border-left: 5px solid; } -table, -th, -td { +table, th, td { border: 1px solid; border-collapse: collapse; padding: 7px; } -pre>code { - display: inline-block; - width: 90%; - color: white; +pre > code { + display: block; + background:rgba(0, 0, 0, 0.15); + word-wrap: break-word; + overflow-wrap: break-word; + word-break: break-all; + white-space: normal; margin: 0px 5px; - font-size: 14px; - background-color: black; - cursor: pointer; padding: 5px 1em; - box-shadow: 1px 1px 1px rgba(0, 0, 0, .25); line-height: 1.5em; } pre > code > p { - margin: 0px + margin: 0px; } ul { @@ -95,10 +76,10 @@ ol.initial { list-style: decimal; } -ol.initial>ol { +ol.initial > ol { list-style-type: lower-alpha; } -ol.initial>ol>ol { +ol.initial > ol > ol { list-style-type: lower-roman; -} \ No newline at end of file +} From 4b0f7e50a0c3dc404ccbd9528848fb09641bd509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Sat, 16 Nov 2019 14:29:39 +0100 Subject: [PATCH 03/20] add prepackage command --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 98f46f6..8ce0115 100644 --- a/package.json +++ b/package.json @@ -126,6 +126,7 @@ "watch": "tsc -watch -p ./", "pretest": "npm run clean && npm run compile", "test": "node ./out/test/runTest.js", + "prepackage": "npm run clean && npm run compile", "package": "./node_modules/.bin/vsce package", "clean": "rm -rf ./out", "clean-all": "rm -f ./confluence-markup*.vsix; rm -rf ./.vscode-test; rm -rf ./out; rm -rf ./node_modules" From 829b5d1af8f7e592e9f1f7faa6d4b24282f3cd03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Sat, 16 Nov 2019 14:32:09 +0100 Subject: [PATCH 04/20] add tests for word wrap --- src/test/suite/fixtures/expected/test.html | 3 +++ src/test/suite/fixtures/testfiles/nix/test.confluence | 1 + src/test/suite/fixtures/testfiles/win/test.confluence | 1 + 3 files changed, 5 insertions(+) diff --git a/src/test/suite/fixtures/expected/test.html b/src/test/suite/fixtures/expected/test.html index 6f35440..ad9603c 100644 --- a/src/test/suite/fixtures/expected/test.html +++ b/src/test/suite/fixtures/expected/test.html @@ -276,6 +276,9 @@

bash

+

echo very long command line with a lot of sings to check word wrap and how it looks like && echo much more elements to print +
+

diff --git a/src/test/suite/fixtures/testfiles/nix/test.confluence b/src/test/suite/fixtures/testfiles/nix/test.confluence index b816aa4..6c892aa 100644 --- a/src/test/suite/fixtures/testfiles/nix/test.confluence +++ b/src/test/suite/fixtures/testfiles/nix/test.confluence @@ -100,6 +100,7 @@ h2. *code:* {code:language=sh|title=title|borderStyle=solid} bash +echo very long command line with a lot of sings to check word wrap and how it looks like && echo much more elements to print {code} {code}code oneline{code} diff --git a/src/test/suite/fixtures/testfiles/win/test.confluence b/src/test/suite/fixtures/testfiles/win/test.confluence index b816aa4..6c892aa 100644 --- a/src/test/suite/fixtures/testfiles/win/test.confluence +++ b/src/test/suite/fixtures/testfiles/win/test.confluence @@ -100,6 +100,7 @@ h2. *code:* {code:language=sh|title=title|borderStyle=solid} bash +echo very long command line with a lot of sings to check word wrap and how it looks like && echo much more elements to print {code} {code}code oneline{code} From a6b04da34a8c7facc4d4c73eb88d89d7c6199a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Sat, 16 Nov 2019 14:34:32 +0100 Subject: [PATCH 05/20] update types/node dependency --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8ce0115..252032b 100644 --- a/package.json +++ b/package.json @@ -134,7 +134,7 @@ "devDependencies": { "@types/glob": "^7.1.1", "@types/mocha": "^5.2.7", - "@types/node": "^12.12.7", + "@types/node": "^12.12.8", "@types/vscode": "^1.40.0", "tslint": "^5.18.0", "typescript": "^3.5.3", From fcc5c32e852319084e8856fac652c9ba62f02122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 00:08:33 +0100 Subject: [PATCH 06/20] use escaping for hmtl links, fix #24 --- src/markupParser.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/markupParser.ts b/src/markupParser.ts index 91c2193..a45f905 100644 --- a/src/markupParser.ts +++ b/src/markupParser.ts @@ -94,9 +94,11 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { tag = tag.replace(/\\\\/gi, '
'); - let re = /\[([^|]*)?\|?([^|]*)\]/g - if (tag.match(re)) { - tag = tag.replace(re, function (m0, m1, m2) { + let re_href = /\[(\S[^|]*)?\|?([^|].*[^\\|\s+])\]/g + let esc_href = /\[\s*([^|]*)?\|?([^|].*)[\s+|\\]\]/g + if (tag.match(re_href)) { + tag = tag.replace(re_href, function (m0, m1, m2) { + console.log(`aaa: >${m1}<, >${m2}<`); if ((m1.length !== 0) && (m2.length !== 0)) { return "" + m1 + ""; } else { @@ -104,6 +106,8 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { } }); html_tag = true; + } else if (tag.match(esc_href)){ + tag = tag.replace('\\','').replace('|', '|') } //img let img = /!([^|]*)\|?.*!/; @@ -115,7 +119,7 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { //Table let tab_th_re = /\s*\|{2}.*$/gi; let tab_td_re = /\s*\|.*$/gi; - if (tag.match(tab_th_re) || tag.match(tab_td_re)) { + if (!html_tag && (tag.match(tab_th_re) || tag.match(tab_td_re))) { tag = tag.replace(/^\|{2,}/, '\|\|'); tag = tag.replace(/^\|{2}/, ''); tag = tag.replace(/\|{2}$/, ''); @@ -212,7 +216,7 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { tag = '' + tag; tableFlag = false; } - + console.log(tag); result += "

" + tag + "

"; } From e4deebc14d0ad99a4aa1b6019d11e680eb963d13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 00:09:45 +0100 Subject: [PATCH 07/20] add test for issue 24 --- src/test/testfiles/nix/issues.confluence | 12 ++++++++++++ src/test/testfiles/win/issues.confluence | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/test/testfiles/nix/issues.confluence b/src/test/testfiles/nix/issues.confluence index 5aea630..b6bf84b 100644 --- a/src/test/testfiles/nix/issues.confluence +++ b/src/test/testfiles/nix/issues.confluence @@ -59,3 +59,15 @@ This is a {{test}} of how things work with {{confluence}} markup. [#18|https://github.com/denco/vscode-confluence-markup/issues/18]: Italic text with dot in the end _Blah blah blah._ + +[#24|https://github.com/denco/vscode-confluence-markup/issues/24]: Can't use [ and ] in string + +[lalala] + +[lalala\] + +[text|https://link] + +[text|https://link\] + +[ text|https://link ] diff --git a/src/test/testfiles/win/issues.confluence b/src/test/testfiles/win/issues.confluence index 5aea630..b6bf84b 100644 --- a/src/test/testfiles/win/issues.confluence +++ b/src/test/testfiles/win/issues.confluence @@ -59,3 +59,15 @@ This is a {{test}} of how things work with {{confluence}} markup. [#18|https://github.com/denco/vscode-confluence-markup/issues/18]: Italic text with dot in the end _Blah blah blah._ + +[#24|https://github.com/denco/vscode-confluence-markup/issues/24]: Can't use [ and ] in string + +[lalala] + +[lalala\] + +[text|https://link] + +[text|https://link\] + +[ text|https://link ] From 8adc126e9907e5af96d73c3a1078e7489b105933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:14:45 +0100 Subject: [PATCH 08/20] add styles for panel element --- media/css/confluence.css | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/media/css/confluence.css b/media/css/confluence.css index 61810b1..29ec0de 100644 --- a/media/css/confluence.css +++ b/media/css/confluence.css @@ -79,6 +79,29 @@ pre>code { line-height: 1.5em; } + +.panel { + display: inline-block; + width: 90%; + color: black; + margin: 0px; + background-color: lightslategrey; + border-width: 1px; + +} + +.panel-title { + font-weight: bold; + padding: 5px; + border-bottom: none; +} + +.panel-body { + background-color: lightgrey; + padding: 3px; +} + + pre > code > p { margin: 0px } From fa083a3b5d7adb2d2783dd663eaf4fd3c3872476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:20:20 +0100 Subject: [PATCH 09/20] add panel macro parsing --- src/markupParser.ts | 82 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/src/markupParser.ts b/src/markupParser.ts index a45f905..f9efa6a 100644 --- a/src/markupParser.ts +++ b/src/markupParser.ts @@ -49,6 +49,7 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { let listTag = ''; let listStyle = ''; let codeTagFlag = false; + let panelTagFlag = false; let tableFlag = false; let listFlag = false; let listArr: string[] = []; @@ -153,6 +154,87 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { } } + let panel_re = /\{panel(.*)}/; + if (tag.match(panel_re)) { + if (! panelTagFlag) { + let panelStyle = ""; + let titleStyle = ""; + tag = tag.replace(panel_re, function (m0, m1, m2) { + let res = '
' + let splits=m1.split(/[\|:]/); + splits.forEach( (el:String) => { + let elems = el.split('='); + if (elems[0] === "title"){ + res = `
${elems[1]}
${res}`; + } + if (elems[0] === "titleBGColor"){ + if (titleStyle.length === 0) { + titleStyle = `style='background-color: ${elems[1]};`; + } else { + titleStyle += ` background-color: ${elems[1]};`; + } + } + if (elems[0] === "bgColor"){ + if (panelStyle.length === 0) { + panelStyle = `style='background-color: ${elems[1]};`; + } else { + panelStyle += ` background-color: ${elems[1]};`; + } + } + if (elems[0] === "borderStyle"){ + if (panelStyle.length === 0) { + panelStyle = `style='border-style: ${elems[1]}; `; + } else { + panelStyle += ` border-style: ${elems[1]}; `; + } + if (titleStyle.length === 0) { + titleStyle = `style='border-style: ${elems[1]}; border-bottom:none; `; + } else { + titleStyle += ` border-style: ${elems[1]}; border-bottom:none; `; + } + } + if (elems[0] === "borderColor"){ + if (panelStyle.length === 0) { + panelStyle = `style='border-color: ${elems[1]}; `; + } else { + panelStyle += ` border-color: ${elems[1]}; `; + } + if (titleStyle.length === 0) { + titleStyle = `style='border-color: ${elems[1]}; `; + } else { + titleStyle += ` border-color: ${elems[1]}; `; + } + } + if (elems[0] === "borderWidth"){ + if (panelStyle.length === 0) { + panelStyle = `style='border-width: ${elems[1]}; `; + } else { + panelStyle += ` border-width: ${elems[1]}; `; + } + if (titleStyle.length === 0) { + titleStyle = `style='border-width: ${elems[1]}; `; + } else { + titleStyle += ` border-width: ${elems[1]}; `; + } + } + }); + if (titleStyle.length >= 0) { + titleStyle += `'`; + } + if (panelStyle.length >= 0) { + panelStyle += `'`; + } + res = res.replace('$panelStyle', panelStyle); + res = res.replace('$titleStyle', titleStyle); + return res; + }); + panelTagFlag = true; + } else { + tag = '
'; + panelTagFlag = false; + } + } + if (! codeTagFlag) { // lists re = /^([-|\*|#]+)\s(.*)/; From b146adfab9b8747af0c67990f874a64ebd7c03d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:21:55 +0100 Subject: [PATCH 10/20] fix table regex --- src/markupParser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markupParser.ts b/src/markupParser.ts index f9efa6a..ac6efe1 100644 --- a/src/markupParser.ts +++ b/src/markupParser.ts @@ -118,8 +118,8 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { } //Table - let tab_th_re = /\s*\|{2}.*$/gi; - let tab_td_re = /\s*\|.*$/gi; + let tab_th_re = /\s*[^{]*\|{2}[^}]*$/gi; + let tab_td_re = /\s*[^{]*\|[^}]*$/gi; if (!html_tag && (tag.match(tab_th_re) || tag.match(tab_td_re))) { tag = tag.replace(/^\|{2,}/, '\|\|'); tag = tag.replace(/^\|{2}/, ''); From 7d865351214e2c494d5eb8dc0e6456b7f902a881 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:22:40 +0100 Subject: [PATCH 11/20] remove console prints --- src/markupParser.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/markupParser.ts b/src/markupParser.ts index ac6efe1..8e386bc 100644 --- a/src/markupParser.ts +++ b/src/markupParser.ts @@ -99,7 +99,6 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { let esc_href = /\[\s*([^|]*)?\|?([^|].*)[\s+|\\]\]/g if (tag.match(re_href)) { tag = tag.replace(re_href, function (m0, m1, m2) { - console.log(`aaa: >${m1}<, >${m2}<`); if ((m1.length !== 0) && (m2.length !== 0)) { return "" + m1 + ""; } else { @@ -298,7 +297,6 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { tag = '' + tag; tableFlag = false; } - console.log(tag); result += "

" + tag + "

"; } From 1d8f18c0186371bf68394944512276c344bab6dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:23:49 +0100 Subject: [PATCH 12/20] add issue 22 case --- src/test/testfiles/nix/issues.confluence | 15 +++++++++++++++ src/test/testfiles/win/issues.confluence | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/test/testfiles/nix/issues.confluence b/src/test/testfiles/nix/issues.confluence index b6bf84b..254947a 100644 --- a/src/test/testfiles/nix/issues.confluence +++ b/src/test/testfiles/nix/issues.confluence @@ -60,6 +60,21 @@ This is a {{test}} of how things work with {{confluence}} markup. _Blah blah blah._ +[#22|https://github.com/denco/vscode-confluence-markup/issues/22] panel support + +{panel} +Some text +{panel} + +{panel:title=My Title} +Some text with a title +{panel} + +{panel:title=My Title|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE} +a block of text surrounded with a *panel* +yet _another_ line +{panel} + [#24|https://github.com/denco/vscode-confluence-markup/issues/24]: Can't use [ and ] in string [lalala] diff --git a/src/test/testfiles/win/issues.confluence b/src/test/testfiles/win/issues.confluence index b6bf84b..254947a 100644 --- a/src/test/testfiles/win/issues.confluence +++ b/src/test/testfiles/win/issues.confluence @@ -60,6 +60,21 @@ This is a {{test}} of how things work with {{confluence}} markup. _Blah blah blah._ +[#22|https://github.com/denco/vscode-confluence-markup/issues/22] panel support + +{panel} +Some text +{panel} + +{panel:title=My Title} +Some text with a title +{panel} + +{panel:title=My Title|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#FFFFCE} +a block of text surrounded with a *panel* +yet _another_ line +{panel} + [#24|https://github.com/denco/vscode-confluence-markup/issues/24]: Can't use [ and ] in string [lalala] From 477de4eb9c182b4a201717f2b2247888eac4e09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 10:29:52 +0100 Subject: [PATCH 13/20] bump next version --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 38b13d4..36317d8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "confluence-markup", "displayName": "Confluence markup", - "version": "0.1.8", + "version": "0.1.9", "publisher": "denco", "description": "Confluence markup language support for Visual Studio Code", "keywords": [ @@ -133,11 +133,11 @@ "devDependencies": { "@types/mocha": "^5.2.7", "@types/node": "^12.12.7", + "html-formatter": "^0.1.9", "tslint": "^5.18.0", "typescript": "^3.5.3", "vsce": "^1.66.0", - "vscode": "^1.1.36", - "html-formatter": "^0.1.9" + "vscode": "^1.1.36" }, "__metadata": { "publisherDisplayName": "denco" From f244942e2e16cbd7f6fc9916e248baa9a590674c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 11:04:38 +0100 Subject: [PATCH 14/20] fix style replacing in panel div --- src/markupParser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/markupParser.ts b/src/markupParser.ts index 8e386bc..c95090e 100644 --- a/src/markupParser.ts +++ b/src/markupParser.ts @@ -217,10 +217,10 @@ export function parseMarkup(sourceUri: vscode.Uri, sourceText: string) { } } }); - if (titleStyle.length >= 0) { + if (titleStyle.length > 0) { titleStyle += `'`; } - if (panelStyle.length >= 0) { + if (panelStyle.length > 0) { panelStyle += `'`; } res = res.replace('$panelStyle', panelStyle); From ebe845e49903b73847d22a30bb1ca845d262b920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 11:05:15 +0100 Subject: [PATCH 15/20] fix test hmtl renderings --- src/test/resources/fixtures/issues.html | 36 ++++++++++++- src/test/resources/fixtures/test.html | 70 ++++++++++++------------- 2 files changed, 70 insertions(+), 36 deletions(-) diff --git a/src/test/resources/fixtures/issues.html b/src/test/resources/fixtures/issues.html index 9cdeaf8..4ce4a62 100644 --- a/src/test/resources/fixtures/issues.html +++ b/src/test/resources/fixtures/issues.html @@ -157,4 +157,38 @@

third header

#18: Italic text with dot in the end

Blah blah blah. -

\ No newline at end of file +

+

+ #22panel support

+

+

+

Some text

+

+

+

+

My Title
+

+

Some text with a title

+

+

+

+

My Title
+

+

a block of text surrounded with a + panel +

+

yet + anotherline

+

+

+

+ #24: Can't use [ and ] in string

+

+ lala +

+

[lalala]

+

+ text +

+

[text|https://link]

+

[ text|https://link ]

\ No newline at end of file diff --git a/src/test/resources/fixtures/test.html b/src/test/resources/fixtures/test.html index 6f35440..5b67a9f 100644 --- a/src/test/resources/fixtures/test.html +++ b/src/test/resources/fixtures/test.html @@ -38,47 +38,47 @@

  • - (smile)smile
  • + (smile)smile

  • - (sad)sad
  • + (sad)sad

  • - (cheeky)cheeky
  • + (cheeky)cheeky

  • - (laugh)laugh
  • + (laugh)laugh

  • - (wink)wink
  • + (wink)wink

  • - (thumbs-up)thumbs-up
  • + (thumbs-up)thumbs-up

  • - (thumbs-down)thumbs-down
  • + (thumbs-down)thumbs-down

  • - (information)information
  • + (information)information

  • - (tick)tick
  • + (tick)tick

  • - (cross)cross
  • + (cross)cross

  • - (warning)warning
  • + (warning)warning

@@ -212,7 +212,7 @@

  • - (smile) + (smile)
  • @@ -255,29 +255,29 @@

    code:

    -

    -

    -	

    -

    <test> -
    -

    -

    <test1 /> -
    -

    -

    </test> -
    -

    -

    - -

    -

    -

    -	

    -

    bash -
    -

    -

    - +

    +

    +		

    +

    <test> +
    +

    +

    <test1 /> +
    +

    +

    </test> +
    +

    +

    + +

    +

    +

    +		

    +

    bash +
    +

    +

    +

    
    From 0ea1b110a72cfc4015e7bc2d80b85bf1cac7aefd Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?=
     
    Date: Wed, 17 Mar 2021 14:12:51 +0100
    Subject: [PATCH 16/20] adjust CHANGELOG
    
    ---
     CHANGELOG.md | 7 +++++++
     1 file changed, 7 insertions(+)
    
    diff --git a/CHANGELOG.md b/CHANGELOG.md
    index 77f628e..6f5c436 100644
    --- a/CHANGELOG.md
    +++ b/CHANGELOG.md
    @@ -1,5 +1,12 @@
     # Confluence Wiki Markup
     
    +## [0.1.9](https://github.com/denco/vscode-confluence-markup/releases/tag/0.1.9)
    +
    +- fix [Can't use [ and ] in string](https://github.com/denco/vscode-confluence-markup/issues/24)
    +- add panel macro support [panel support](https://github.com/denco/vscode-confluence-markup/issues/22)
    +- add bages for [Open VSX Registry](https://open-vsx.org/)
    +- use bages from [shilds.io](https://shields.io/)
    +
     ## [0.1.8](https://github.com/denco/vscode-confluence-markup/releases/tag/0.1.8)
     
     - fix [Multiply inline monospace macro](https://github.com/denco/vscode-confluence-markup/issues/17)
    
    From f5c58fe1d9522445eaff29250869122bbca8ab8e Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?=
     
    Date: Wed, 17 Mar 2021 14:13:19 +0100
    Subject: [PATCH 17/20] use shilds.io for badges, add open vsx badges
    
    ---
     README.md | 16 +++++++++++-----
     1 file changed, 11 insertions(+), 5 deletions(-)
    
    diff --git a/README.md b/README.md
    index 6153556..416ae49 100644
    --- a/README.md
    +++ b/README.md
    @@ -1,10 +1,16 @@
     # Confluence® markup language support for Visual Studio Code
     
    -[![The MIT License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/denco/vscode-confluence-markup/blob/master/LICENSE)
    -[![Version](https://vsmarketplacebadge.apphb.com/version-short/denco.confluence-markup.svg?style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    -[![Installs](https://vsmarketplacebadge.apphb.com/installs-short/denco.confluence-markup.svg?style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    -[![Downloads](https://vsmarketplacebadge.apphb.com/downloads-short/denco.confluence-markup.svg?style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    -[![Rating](https://vsmarketplacebadge.apphb.com/rating-short/denco.confluence-markup.svg?style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    +[![The MIT License](https://img.shields.io/badge/license-MIT-brightgreen.svg?label=License&style=flat-square)](https://github.com/denco/vscode-confluence-markup/blob/master/LICENSE)
    +
    +[![Version](https://img.shields.io/visual-studio-marketplace/v/denco.confluence-markup?color=%230066B8&label=VS%20Marketplace&style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    +[![Installs](https://img.shields.io/visual-studio-marketplace/i/denco.confluence-markup?color=%230066B8&style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    +[![Downloads](https://img.shields.io/visual-studio-marketplace/d/denco.confluence-markup?color=%230066B8&style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    +[![Rating](https://img.shields.io/visual-studio-marketplace/r/denco.confluence-markup?color=0066B8&style=flat-square)](https://marketplace.visualstudio.com/items?itemName=denco.confluence-markup)
    +
    +[![Version](https://img.shields.io/open-vsx/v/denco/confluence-markup?color=%23a60ee5&label=Open%20VSX&style=flat-square)](https://open-vsx.org/extension/denco/confluence-markup)
    +[![Downloads](https://img.shields.io/open-vsx/dt/denco/confluence-markup?color=%23a60ee5&style=flat-square)](https://open-vsx.org/extension/denco/confluence-markup)
    +[![Rating](https://img.shields.io/open-vsx/rating/denco/confluence-markup?color=%23a60ee5&style=flat-square)](https://open-vsx.org/extension/denco/confluence-markup)
    +
     
     ## Description
     
    
    From f8c6d61a03c50bfedebd751f920beb5a0e02793f Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?=
     
    Date: Wed, 17 Mar 2021 16:56:38 +0100
    Subject: [PATCH 18/20] fix padding for panel title
    
    ---
     media/css/confluence.css | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/media/css/confluence.css b/media/css/confluence.css
    index 867ded4..8be7fa9 100644
    --- a/media/css/confluence.css
    +++ b/media/css/confluence.css
    @@ -73,7 +73,7 @@ pre > code {
     
     .panel-title {
     	font-weight: bold;
    -	padding: 5px;
    +	padding: 5px 3px;
     	border-bottom: none;
     }
     
    
    From df4e947bc06c87cd95a638d2193bc3ff87bea003 Mon Sep 17 00:00:00 2001
    From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?=
     
    Date: Wed, 17 Mar 2021 16:57:27 +0100
    Subject: [PATCH 19/20] add expected long text block in test.html
    
    ---
     src/test/suite/fixtures/expected/test.html | 3 +++
     1 file changed, 3 insertions(+)
    
    diff --git a/src/test/suite/fixtures/expected/test.html b/src/test/suite/fixtures/expected/test.html
    index 5b67a9f..5165571 100644
    --- a/src/test/suite/fixtures/expected/test.html
    +++ b/src/test/suite/fixtures/expected/test.html
    @@ -276,6 +276,9 @@ 

    bash

    +

    echo very long command line with a lot of sings to check word wrap and how it looks like && echo much more elements to print +
    +

    From 0a3496eee47ccf6ad9d06dd2dd2aeaac741748cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20Baumg=C3=A4rtner?= Date: Wed, 17 Mar 2021 17:05:42 +0100 Subject: [PATCH 20/20] adjust CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f5c436..07ec963 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - add panel macro support [panel support](https://github.com/denco/vscode-confluence-markup/issues/22) - add bages for [Open VSX Registry](https://open-vsx.org/) - use bages from [shilds.io](https://shields.io/) +- migrate from `vscode` dependency to `@types/vscode` and `vscode-test`, s. [Migrating from `vscode`](https://code.visualstudio.com/api/working-with-extensions/testing-extension#migrating-from-vscode) ## [0.1.8](https://github.com/denco/vscode-confluence-markup/releases/tag/0.1.8)