diff --git a/.vscodeignore b/.vscodeignore index 770963d..c6dbc7e 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -11,3 +11,6 @@ client/node_modules/** !client/node_modules/vscode-languageclient/** !client/node_modules/vscode-languageserver-protocol/** !client/node_modules/vscode-languageserver-types/** +**/node_modules/* +!**/node_modules/semver +!**/node_modules/semver/** diff --git a/package-lock.json b/package-lock.json index f0a42a9..b508cfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,14 @@ { "name": "oh-alignment-tool", - "version": "2.1.3", + "version": "2.1.7", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "oh-alignment-tool", - "version": "2.1.3", + "version": "2.1.7", "license": "EPL-2.0", "dependencies": { - "@types/semver": "^7.3.4", "semver": "^7.3.5" }, "devDependencies": { @@ -20,7 +19,6 @@ "@types/vscode": "^1.55.0", "glob": "^7.1.6", "mocha": "^8.3.2", - "semver": "^7.3.5", "tslint": "^5.20.1", "typescript": "^4.2.4", "vscode-test": "^1.5.2" @@ -89,7 +87,8 @@ "node_modules/@types/semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==", + "dev": true }, "node_modules/@types/vscode": { "version": "1.55.0", @@ -1769,7 +1768,8 @@ "@types/semver": { "version": "7.3.4", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" + "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==", + "dev": true }, "@types/vscode": { "version": "1.55.0", diff --git a/package.json b/package.json index b6f0b55..d80cd15 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "oh-alignment-tool", "displayName": "openHAB Alignment Tool", - "version": "2.1.6", + "version": "2.1.7", "publisher": "max-beckenbauer", "contributors": [ "Mark Hilbush" @@ -125,7 +125,6 @@ "test": "node ./out/test/runTest.js" }, "dependencies": { - "@types/semver": "^7.3.4", "semver": "^7.3.5" }, "devDependencies": { @@ -136,7 +135,6 @@ "@types/vscode": "^1.55.0", "glob": "^7.1.6", "mocha": "^8.3.2", - "semver": "^7.3.5", "tslint": "^5.20.1", "typescript": "^4.2.4", "vscode-test": "^1.5.2" diff --git a/src/extension.ts b/src/extension.ts index 835383f..bb11cca 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -31,9 +31,10 @@ const REGEX_ITEM_LABEL = /\".+?\"/; const REGEX_ITEM_ICON = /<.+?>/; const REGEX_ITEM_GROUP = /\(.+?\)/; const REGEX_ITEM_TAG = /\[\s*(\".+?\")\s*(,\s*\".+?\"\s*)*\]/; -const REGEX_ITEM_CHANNEL_START = /\{\s*(\w*\s?=\s?"[^\}]*"?,?\s*)+\}?/; -const REGEX_ITEM_CHANNEL_END = /.*[\},]/; -const REGEX_ITEM_CHANNEL_SECTION = /(\w+\=\".*?\"\s*(\[.*?\])?)+/g; +// Updated regex to handle nested curly braces inside quoted strings +const REGEX_ITEM_CHANNEL_START = /\{.*\}$/; +const REGEX_ITEM_CHANNEL_END = /.*\}$/; +const REGEX_ITEM_CHANNEL_SECTION = /\w+="[^"]*"(\s*\[[^\]]*\])?/g; const REGEX_SITEMAP_ELEMENTS = /\b(Frame|Default|Text|Group|Switch|Selection|Setpoint|Slider|Colorpicker|Webview|Mapview|Image|Video|Chart)\b/g; diff --git a/src/utils.ts b/src/utils.ts index 3a53a74..3a8cd3a 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -63,7 +63,7 @@ export function fillColumns(str: string, finalLength: number): string { } if (editor.options.insertSpaces) { - for (let e = 0; e < tabSize + finalLength - str.length; e++) { + for (let e = 0; e < tabSize - finalLength % tabSize + finalLength - str.length; e++) { tab += " "; } str += tab;