This commit is contained in:
csh 2025-07-03 20:07:54 +08:00
parent 1906c8c421
commit 696618ff1d
9 changed files with 188 additions and 182 deletions

View File

@ -11,7 +11,7 @@
安装[vsix](./vscode/)扩展 安装[vsix](./vscode/)扩展
```bash ```bash
code --install-extension tsl-devkit-1.0.0.vsix # 具体版本号以vsix文件为准 code --install-extension tsl-tools-1.0.0.vsix # 具体版本号以vsix文件为准
``` ```
### 安装方式二 ### 安装方式二
@ -33,7 +33,7 @@ npm install
npx vsce package npx vsce package
# 安装 # 安装
code --install-extension tsl-devkit-1.0.0.vsix # 具体版本号以vsix文件为准 code --install-extension tsl-tools-1.0.0.vsix # 具体版本号以vsix文件为准
``` ```
## Vim ## Vim
@ -53,8 +53,8 @@ autocmd BufNewFile,BufRead *.ts[lf] setf tsl
"languageserver": { "languageserver": {
"tsl-server": { "tsl-server": {
"command": "tsl-server", "command": "tsl-server",
"args": ["--log=trace", "--log=stderr"],
"filetypes": ["tsl", "tsf"] "filetypes": ["tsl", "tsf"]
} }
} }
``` ```

View File

@ -1,6 +1,14 @@
# Change Log # Change Log
Notable changes to the `TSL` extension will be documented in this file. Notable changes to the `TSL` extension will be documented in thio file.
## [2.3.0]: 2025-07-03
- 修改插件名为`tsl-tools`
- 支持设置参数
- `tsl.server.executable`: `tsl-server`的执行路径
- `tsl.server.arguments`: `tsl-server`的启动参数
- `tsl.interpreter.executable`: `tsl`解释器的路径
## [2.2.0]: 2025-07-02 ## [2.2.0]: 2025-07-02

Binary file not shown.

Binary file not shown.

251
vscode/package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "tsl-devkit", "name": "tsl-devkit",
"version": "2.1.0", "version": "2.2.0",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "tsl-devkit", "name": "tsl-devkit",
"version": "2.1.0", "version": "2.2.0",
"license": "AGPL-3.0-or-later", "license": "AGPL-3.0-or-later",
"dependencies": { "dependencies": {
"vscode-languageclient": "^9.0.1" "vscode-languageclient": "^9.0.1"
@ -14,7 +14,7 @@
"devDependencies": { "devDependencies": {
"@types/node": "^24.0.3", "@types/node": "^24.0.3",
"@types/vscode": "^1.101.0", "@types/vscode": "^1.101.0",
"@vscode/vsce": "^3.5.0", "@vscode/vsce": "^3.6.0",
"prettier": "^3.5.3", "prettier": "^3.5.3",
"typescript": "^5.8.3" "typescript": "^5.8.3"
}, },
@ -367,64 +367,64 @@
} }
}, },
"node_modules/@secretlint/config-creator": { "node_modules/@secretlint/config-creator": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.1.1.tgz",
"integrity": "sha512-GRMYfHJ+rewwB26CC3USVObqSQ/mDLXzXcUMJw/wJisPr3HDZmdsYlcsNnaAcGN+EZmvqSDkgSibQm1hyZpzbg==", "integrity": "sha512-TJ42CHZqqnEe9ORvIXVVMqdu3KAtyZRxLspjFexo6XgrwJ6CoFHQYzIihilqRjo2sJh9HMrpnYSj/5hopofGrA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/types": "^9.3.4" "@secretlint/types": "^10.1.1"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/config-loader": { "node_modules/@secretlint/config-loader": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.1.1.tgz",
"integrity": "sha512-sy+yWDWh4cbAbpQYLiO39DjwNGEK1EUhTqNamLLBo163BdJP10FIWhqpe8mtGQBSBXRtxr8Hg/gc3Xe4meIoww==", "integrity": "sha512-jBClVFmS6Yu/zI5ejBCRF5a5ASYsE4gOjogjB+WsaHbQHtGvnyY7I26Qtdg4ihCc/VPKYQg0LdM75pLTXzwsjg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/profiler": "^9.3.4", "@secretlint/profiler": "^10.1.1",
"@secretlint/resolver": "^9.3.4", "@secretlint/resolver": "^10.1.1",
"@secretlint/types": "^9.3.4", "@secretlint/types": "^10.1.1",
"ajv": "^8.17.1", "ajv": "^8.17.1",
"debug": "^4.4.1", "debug": "^4.4.1",
"rc-config-loader": "^4.1.3" "rc-config-loader": "^4.1.3"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/core": { "node_modules/@secretlint/core": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/core/-/core-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.1.1.tgz",
"integrity": "sha512-ErIVHI6CJd191qdNKuMkH3bZQo9mWJsrSg++bQx64o0WFuG5nPvkYrDK0p/lebf+iQuOnzvl5HrZU6GU9a6o+Q==", "integrity": "sha512-COLCxSoH/iVQdLeaZPVtBj0UWKOagO09SqYkCQgfFfZ+soGxKVK405dL317r4PnH9Pm8/s8xQC6OSY5rWTRObQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/profiler": "^9.3.4", "@secretlint/profiler": "^10.1.1",
"@secretlint/types": "^9.3.4", "@secretlint/types": "^10.1.1",
"debug": "^4.4.1", "debug": "^4.4.1",
"structured-source": "^4.0.0" "structured-source": "^4.0.0"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/formatter": { "node_modules/@secretlint/formatter": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.1.1.tgz",
"integrity": "sha512-ARpoBOKz6WP3ocLITCFkR1/Lj636ugpBknylhlpc45r5aLdvmyvWAJqodlw5zmUCfgD6JXeAMf3Hi60aAiuqWQ==", "integrity": "sha512-Gpd8gTPN121SJ0h/9e6nWlZU7PitfhXUiEzW7Kyswg6kNGs+bSqmgTgWFtbo1VQ4ygJYiveWPNT05RCImBexJw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/resolver": "^9.3.4", "@secretlint/resolver": "^10.1.1",
"@secretlint/types": "^9.3.4", "@secretlint/types": "^10.1.1",
"@textlint/linter-formatter": "^14.7.2", "@textlint/linter-formatter": "^14.8.4",
"@textlint/module-interop": "^14.7.2", "@textlint/module-interop": "^14.8.4",
"@textlint/types": "^14.7.2", "@textlint/types": "^14.8.4",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"debug": "^4.4.1", "debug": "^4.4.1",
"pluralize": "^8.0.0", "pluralize": "^8.0.0",
@ -433,47 +433,47 @@
"terminal-link": "^2.1.1" "terminal-link": "^2.1.1"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/node": { "node_modules/@secretlint/node": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/node/-/node-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.1.1.tgz",
"integrity": "sha512-S0u8i+CnPmyAKtuccgot9L5cmw6DqJc0F+b3hhVIALd8kkeLt3RIXOOej15tU7N0V1ISph90Gz92V72ovsprgQ==", "integrity": "sha512-AhN+IGqljVObm8a+B33b23FY79wihu5E61Nd3oYSoZV7SxUvMjpafqhLfpt4frNSY7Ghf/pirWu7JY7GMujFrA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/config-loader": "^9.3.4", "@secretlint/config-loader": "^10.1.1",
"@secretlint/core": "^9.3.4", "@secretlint/core": "^10.1.1",
"@secretlint/formatter": "^9.3.4", "@secretlint/formatter": "^10.1.1",
"@secretlint/profiler": "^9.3.4", "@secretlint/profiler": "^10.1.1",
"@secretlint/source-creator": "^9.3.4", "@secretlint/source-creator": "^10.1.1",
"@secretlint/types": "^9.3.4", "@secretlint/types": "^10.1.1",
"debug": "^4.4.1", "debug": "^4.4.1",
"p-map": "^4.0.0" "p-map": "^7.0.3"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/profiler": { "node_modules/@secretlint/profiler": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.1.1.tgz",
"integrity": "sha512-99WmaHd4dClNIm5BFsG++E6frNIZ3qVwg6s804Ql/M19pDmtZOoVCl4/UuzWpwNniBqLIgn9rHQZ/iGlIW3wyw==", "integrity": "sha512-kReI+Wr7IQz0LbVwYByzlnPbx4BEF2oEWJBc4Oa45g24alCjHu+jD9h9mzkTJqYUgMnVYD3o7HfzeqxFrV+9XA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@secretlint/resolver": { "node_modules/@secretlint/resolver": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.1.1.tgz",
"integrity": "sha512-L1lIrcjzqcspPzZttmOvMmOFDpJTYFyRBONg94TZBWrpv4x0w5G2SYR+K7EE1SbYQAiPxw1amoXT1YRP8cZF2A==", "integrity": "sha512-GdQzxnBtdBRjBULvZ8ERkaRqDp0njVwXrzBCav1pb0XshVk76C1cjeDqtTqM4RJ1Awo/g5U5MIWYztYv67v5Gg==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@secretlint/secretlint-formatter-sarif": { "node_modules/@secretlint/secretlint-formatter-sarif": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.1.1.tgz",
"integrity": "sha512-IpAl5gzKwpTRqoivKOTJB89l6b7uvBwjSNKzJb3oIGD9Jg3vXcQunSntvLv5XGynYtdi1NhANfEpbhavlmMSyA==", "integrity": "sha512-Dyq8nzy6domjSlZKX1E5PEzuWxeTqjQJWrlXBmVmOjwLBLfRZDlm5Vq+AduBmEk03KEIKIZi4cZQwsniuRPO9Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@ -481,50 +481,50 @@
} }
}, },
"node_modules/@secretlint/secretlint-rule-no-dotenv": { "node_modules/@secretlint/secretlint-rule-no-dotenv": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.1.1.tgz",
"integrity": "sha512-lMSVwTrJiZ/zL9VIzpT7tMcb0ClI6u4cyJo2YKGSbuJErJG1zB4gQKtjIwCSt7px5JF6U+aFtpb9M8+s40WWCQ==", "integrity": "sha512-a3/sOUUtEHuw1HCadtxUjViNeomiiohfJj+rwtHxJkCq4pjITS3HSYhQBXnNvkctQNljKIzFm7JUA/4QJ6I4sQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/types": "^9.3.4" "@secretlint/types": "^10.1.1"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/secretlint-rule-preset-recommend": { "node_modules/@secretlint/secretlint-rule-preset-recommend": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.1.1.tgz",
"integrity": "sha512-RvzrLNN2A0B2bYQgRSRjh2dkdaIDuhXjj4SO5bElK1iBtJNiD6VBTxSSY1P3hXYaBeva7MEF+q1PZ3cCL8XYOA==", "integrity": "sha512-+GeISCXVgpnoeRZE4ZPsuO97+fm6z8Ge23LNq6LvR9ZJAq018maXVftkJhHj4hnvYB5URUAEerBBkPGNk5/Ong==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/source-creator": { "node_modules/@secretlint/source-creator": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.1.1.tgz",
"integrity": "sha512-I9ZA1gm9HJNaAhZiQdInY9VM04VTAGDV4bappVbEJzMUDnK/LTbYqfQ88RPqgCGCqa6ee8c0/j5Bn7ypweouIw==", "integrity": "sha512-IWjvHcE0bhC/x88a9M9jbZlFRZGUEbBzujxrs2KzI5IQ2BXTBRBRhRSjE/BEpWqDHILB22c3mfam8X+UjukphA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/types": "^9.3.4", "@secretlint/types": "^10.1.1",
"istextorbinary": "^9.5.0" "istextorbinary": "^9.5.0"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@secretlint/types": { "node_modules/@secretlint/types": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/@secretlint/types/-/types-9.3.4.tgz", "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.1.1.tgz",
"integrity": "sha512-z9rdKHNeL4xa48+367RQJVw1d7/Js9HIQ+gTs/angzteM9osfgs59ad3iwVRhCGYbeUoUUDe2yxJG2ylYLaH3Q==", "integrity": "sha512-/JGAvVkurVHkargk3AC7UxRy+Ymc+52AVBO/fZA5pShuLW2dX4O/rKc4n8cyhQiOb/3ym5ACSlLQuQ8apPfxrQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/@sindresorhus/merge-streams": { "node_modules/@sindresorhus/merge-streams": {
@ -541,24 +541,24 @@
} }
}, },
"node_modules/@textlint/ast-node-types": { "node_modules/@textlint/ast-node-types": {
"version": "14.8.1", "version": "14.8.4",
"resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.1.tgz", "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.4.tgz",
"integrity": "sha512-fW5Tx5F3ZmTZeKNins9uRhoDCVLHcuUijGNQRfCmJX8R6MjL0yBFt3hHlrvXDpZg5t2PELCvBA25id83LhNMSg==", "integrity": "sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@textlint/linter-formatter": { "node_modules/@textlint/linter-formatter": {
"version": "14.8.1", "version": "14.8.4",
"resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.1.tgz", "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.4.tgz",
"integrity": "sha512-guraonRgEZJ9MnysT+pCvXFDaT5VeHwAHZAsr7uDRSviqEldmG2oqtXf4lxaQ1Qo4SL16bzSEr6F7+j5k8QONQ==", "integrity": "sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@azu/format-text": "^1.0.2", "@azu/format-text": "^1.0.2",
"@azu/style-format": "^1.0.1", "@azu/style-format": "^1.0.1",
"@textlint/module-interop": "^14.8.1", "@textlint/module-interop": "14.8.4",
"@textlint/resolver": "^14.8.1", "@textlint/resolver": "14.8.4",
"@textlint/types": "^14.8.1", "@textlint/types": "14.8.4",
"chalk": "^4.1.2", "chalk": "^4.1.2",
"debug": "^4.4.1", "debug": "^4.4.1",
"js-yaml": "^3.14.1", "js-yaml": "^3.14.1",
@ -578,27 +578,27 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@textlint/module-interop": { "node_modules/@textlint/module-interop": {
"version": "14.8.1", "version": "14.8.4",
"resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.1.tgz", "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.4.tgz",
"integrity": "sha512-Lt3Qjb81e09nPElcJM6rOml5uPyZLKHScAoI9LlpcVca5oS2ZjnPr6M92tKxf/kfkqL4lDkg0LY61W1r5MI7Zg==", "integrity": "sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@textlint/resolver": { "node_modules/@textlint/resolver": {
"version": "14.8.1", "version": "14.8.4",
"resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.1.tgz", "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.4.tgz",
"integrity": "sha512-aAOKXQJhVnq8LXBibEpo0dgEr8ImCw4waj3kAeC+Nj+a9nQkOitg4Veul/IO6he7mNxvYRgqWWoMaN9JRqp34w==", "integrity": "sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
"node_modules/@textlint/types": { "node_modules/@textlint/types": {
"version": "14.8.1", "version": "14.8.4",
"resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.1.tgz", "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.4.tgz",
"integrity": "sha512-8ncGYcEoKLE3JP2s9+2IlxMbMLWpNmvptOZmF3qI188vW3g/a00r3hBRNMcKxJg3phYDtgLOyXdv44/jwJxsLw==", "integrity": "sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@textlint/ast-node-types": "^14.8.1" "@textlint/ast-node-types": "14.8.4"
} }
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
@ -648,17 +648,17 @@
} }
}, },
"node_modules/@vscode/vsce": { "node_modules/@vscode/vsce": {
"version": "3.5.0", "version": "3.6.0",
"resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.5.0.tgz", "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-3.6.0.tgz",
"integrity": "sha512-2Eb6fBh8OzNhWqviCjeUPA1MW+d2GCb1QlVxrpOR8lrLHGk8x7HD4LbfELnZPyOz2X33Myz9FE9t4LwYbmeMRg==", "integrity": "sha512-u2ZoMfymRNJb14aHNawnXJtXHLXDVKc1oKZaH4VELKT/9iWKRVgtQOdwxCgtwSxJoqYvuK4hGlBWQJ05wxADhg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@azure/identity": "^4.1.0", "@azure/identity": "^4.1.0",
"@secretlint/node": "^9.3.4", "@secretlint/node": "^10.1.1",
"@secretlint/secretlint-formatter-sarif": "^9.3.4", "@secretlint/secretlint-formatter-sarif": "^10.1.1",
"@secretlint/secretlint-rule-no-dotenv": "^9.3.4", "@secretlint/secretlint-rule-no-dotenv": "^10.1.1",
"@secretlint/secretlint-rule-preset-recommend": "^9.3.4", "@secretlint/secretlint-rule-preset-recommend": "^10.1.1",
"@vscode/vsce-sign": "^2.0.0", "@vscode/vsce-sign": "^2.0.0",
"azure-devops-node-api": "^12.5.0", "azure-devops-node-api": "^12.5.0",
"chalk": "^4.1.2", "chalk": "^4.1.2",
@ -675,7 +675,7 @@
"minimatch": "^3.0.3", "minimatch": "^3.0.3",
"parse-semver": "^1.1.1", "parse-semver": "^1.1.1",
"read": "^1.0.7", "read": "^1.0.7",
"secretlint": "^9.3.4", "secretlint": "^10.1.1",
"semver": "^7.5.2", "semver": "^7.5.2",
"tmp": "^0.2.3", "tmp": "^0.2.3",
"typed-rest-client": "^1.8.4", "typed-rest-client": "^1.8.4",
@ -849,20 +849,6 @@
"node": ">= 14" "node": ">= 14"
} }
}, },
"node_modules/aggregate-error": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
"integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
"license": "MIT",
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/ajv": { "node_modules/ajv": {
"version": "8.17.1", "version": "8.17.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
@ -1227,16 +1213,6 @@
"license": "ISC", "license": "ISC",
"optional": true "optional": true
}, },
"node_modules/clean-stack": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/cockatiel": { "node_modules/cockatiel": {
"version": "3.2.1", "version": "3.2.1",
"resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz", "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.2.1.tgz",
@ -2141,16 +2117,6 @@
"node": ">= 4" "node": ">= 4"
} }
}, },
"node_modules/indent-string": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
"integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/inherits": { "node_modules/inherits": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
@ -2853,16 +2819,13 @@
} }
}, },
"node_modules/p-map": { "node_modules/p-map": {
"version": "4.0.0", "version": "7.0.3",
"resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz",
"integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": {
"aggregate-error": "^3.0.0"
},
"engines": { "engines": {
"node": ">=10" "node": ">=18"
}, },
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
@ -3363,16 +3326,16 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/secretlint": { "node_modules/secretlint": {
"version": "9.3.4", "version": "10.1.1",
"resolved": "https://registry.npmjs.org/secretlint/-/secretlint-9.3.4.tgz", "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.1.1.tgz",
"integrity": "sha512-iNOzgMX/+W1SQNW/TW6eikGChyaPiazr2AEXjzjpoB0R6QJEulvlwhn0KLT1/xjPfdYrk3yiXZM40csUqET8uQ==", "integrity": "sha512-q50i+I9w6HH8P6o34LVq6M3hm5GZn2Eq5lYGHkEByOAbVqBHn8gsMGgyxjP1xSrSv1QjDtjxs/zKPm6JtkNzGw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@secretlint/config-creator": "^9.3.4", "@secretlint/config-creator": "^10.1.1",
"@secretlint/formatter": "^9.3.4", "@secretlint/formatter": "^10.1.1",
"@secretlint/node": "^9.3.4", "@secretlint/node": "^10.1.1",
"@secretlint/profiler": "^9.3.4", "@secretlint/profiler": "^10.1.1",
"debug": "^4.4.1", "debug": "^4.4.1",
"globby": "^14.1.0", "globby": "^14.1.0",
"read-pkg": "^8.1.0" "read-pkg": "^8.1.0"
@ -3381,7 +3344,7 @@
"secretlint": "bin/secretlint.js" "secretlint": "bin/secretlint.js"
}, },
"engines": { "engines": {
"node": "^14.13.1 || >=16.0.0" "node": ">=20.0.0"
} }
}, },
"node_modules/semver": { "node_modules/semver": {

View File

@ -1,8 +1,8 @@
{ {
"name": "tsl-devkit", "name": "tsl-tools",
"displayName": "TSL", "displayName": "TSL",
"version": "2.2.0", "version": "2.3.0",
"description": "TSL syntax highlighter support for VSCode.", "description": "VSCode extension for TSL, with syntax highlighting, code completion, and formatting",
"publisher": "csh", "publisher": "csh",
"homepage": "https://git.mytsl.cn/csh/tsl-devkit", "homepage": "https://git.mytsl.cn/csh/tsl-devkit",
"author": { "author": {
@ -46,6 +46,33 @@
"path": "./syntaxes/tsl.tmLanguage.json" "path": "./syntaxes/tsl.tmLanguage.json"
} }
], ],
"configuration": {
"type": "object",
"title": "TSL",
"properties": {
"tsl.server.executable": {
"type": "string",
"default": "",
"description": "Path to tsl-server executable (leave empty for auto-detection)"
},
"tsl.server.arguments": {
"type": "array",
"default": [
"--log=info",
"--log-stderr"
],
"description": "Arguments for TSL server",
"items": {
"type": "string"
}
},
"tsl.interpreter.executable": {
"type": "string",
"default": "",
"description": "Path to TSL interpreter executable (leave empty for auto-detection)"
}
}
},
"commands": [ "commands": [
{ {
"command": "extension.start", "command": "extension.start",
@ -59,11 +86,11 @@
"watch": "tsc -watch -p ." "watch": "tsc -watch -p ."
}, },
"devDependencies": { "devDependencies": {
"@vscode/vsce": "^3.5.0",
"typescript": "^5.8.3",
"@types/node": "^24.0.3", "@types/node": "^24.0.3",
"@types/vscode": "^1.101.0", "@types/vscode": "^1.101.0",
"prettier": "^3.5.3" "@vscode/vsce": "^3.6.0",
"prettier": "^3.5.3",
"typescript": "^5.8.3"
}, },
"engines": { "engines": {
"vscode": "^1.101.0" "vscode": "^1.101.0"

View File

@ -20,45 +20,53 @@ function findSystemTslServer(): string | null {
} }
export function activate(context: vscode.ExtensionContext) { export function activate(context: vscode.ExtensionContext) {
const bundledPath = context.asAbsolutePath( // server配置项
path.join('bin', process.platform === 'win32' ? 'tsl-server.exe' : 'tsl-server') const config = vscode.workspace.getConfiguration('tsl')
) const customExecutable = config.get<string>('server.executable', '')
const serverArguments = config.get<string[]>('server.arguments')
// 查找路径优先级:插件目录 -> 系统 PATH
let serverExe: string | null = null let serverExe: string | null = null
if (fs.existsSync(bundledPath)) {
serverExe = bundledPath if (customExecutable) {
serverExe = customExecutable
} else { } else {
serverExe = findSystemTslServer() const bundledPath = context.asAbsolutePath(
path.join('bin', process.platform === 'win32' ? 'tsl-server.exe' : 'tsl-server')
)
// 查找路径优先级:插件目录 -> 系统 PATH
if (fs.existsSync(bundledPath)) {
serverExe = bundledPath
} else {
serverExe = findSystemTslServer()
}
} }
if (!serverExe) { if (!serverExe) {
vscode.window.showErrorMessage( vscode.window.showErrorMessage(
"Cannot find tsl-server. Please install it globally or include it in your extension's server directory." "Cannot find tsl-server. Please install it globally or include it in your extension's server directory."
) )
return } else {
} const serverOptions: ServerOptions = {
run: {command: serverExe, transport: TransportKind.stdio, args: serverArguments},
const serverOptions: ServerOptions = { debug: {command: serverExe, transport: TransportKind.stdio, args: serverArguments}
run: {command: serverExe, transport: TransportKind.stdio, args: ['--log=trace', '--log-stderr']},
debug: {command: serverExe, transport: TransportKind.stdio}
}
const clientOptions: LanguageClientOptions = {
documentSelector: [{scheme: 'file', language: 'tsl'}],
synchronize: {
fileEvents: vscode.workspace.createFileSystemWatcher('**/*.tsl')
} }
const clientOptions: LanguageClientOptions = {
documentSelector: [{scheme: 'file', language: 'tsl'}],
synchronize: {
fileEvents: vscode.workspace.createFileSystemWatcher('**/*.tsl')
}
}
client = new LanguageClient(
'tslLanguageServer', // 客户端唯一ID
'TSL Language Server', // 用户可见名称
serverOptions,
clientOptions
)
client.start()
} }
client = new LanguageClient(
'tslLanguageServer', // 客户端唯一ID
'TSL Language Server', // 用户可见名称
serverOptions,
clientOptions
)
client.start()
} }
export function deactivate(): Thenable<void> | undefined { export function deactivate(): Thenable<void> | undefined {

Binary file not shown.

BIN
vscode/tsl-tools-2.3.0.vsix Normal file

Binary file not shown.