diff --git a/.github/workflows/auto-fix.yml b/.github/workflows/auto-fix.yml new file mode 100644 index 000000000..cd8ad9f5c --- /dev/null +++ b/.github/workflows/auto-fix.yml @@ -0,0 +1,36 @@ +name: auto-fix + +on: + push: + branches: + - 'master' + +jobs: + auto-fix: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: pnpm/action-setup@v2 + with: + version: latest + + - uses: actions/setup-node@v4 + with: + node-version: 20 + cache: pnpm + + - run: pnpm install + + # lint + - name: Auto-fix + run: npm run lint:fix + + # commit + - name: Commit + uses: EndBug/add-and-commit@v9 + with: + message: "ci(lint): auto-fix" + default_author: github_actions + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/package.json b/package.json index 38d2e59cd..e09d00756 100644 --- a/package.json +++ b/package.json @@ -14,12 +14,16 @@ "release:next-base": "npm run release:base -- --dist-tag next", "release:next-vue": "cd ./extensions/vscode && npm run release:next", "test": "vitest run", + "lint": "tsl --projects packages/*/tsconfig.json", + "lint:fix": "npm run lint -- --fix", "chrome": "vscode-test-web --browserType=chromium --extensionDevelopmentPath=./extensions/vscode ../volar-starter" }, "devDependencies": { "@lerna-lite/cli": "latest", "@lerna-lite/publish": "latest", "@volar/language-service": "~2.1.2", + "@volar/tsl-config": "latest", + "tsl": "latest", "typescript": "latest", "vite": "latest", "vitest": "latest" diff --git a/packages/language-service/package.json b/packages/language-service/package.json index 2e1f753c5..ba1784f6a 100644 --- a/packages/language-service/package.json +++ b/packages/language-service/package.json @@ -33,14 +33,14 @@ "volar-service-typescript": "0.0.31-patch.1", "volar-service-typescript-twoslash-queries": "0.0.31", "vscode-html-languageservice": "^5.1.0", - "vscode-languageserver-textdocument": "^1.0.11" + "vscode-languageserver-textdocument": "^1.0.11", + "vscode-uri": "^3.0.8" }, "devDependencies": { "@types/node": "latest", "@types/path-browserify": "latest", "@volar/kit": "~2.1.2", "@vue/typescript-plugin": "2.0.6", - "vscode-languageserver-protocol": "^3.17.5", - "vscode-uri": "^3.0.8" + "vscode-languageserver-protocol": "^3.17.5" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 288458b63..0d161593d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,12 @@ importers: '@volar/language-service': specifier: ~2.1.2 version: 2.1.2 + '@volar/tsl-config': + specifier: latest + version: 0.0.0-20240315(tsl@0.0.10) + tsl: + specifier: latest + version: 0.0.10(typescript@5.3.3) typescript: specifier: latest version: 5.3.3 @@ -226,6 +232,9 @@ importers: vscode-languageserver-textdocument: specifier: ^1.0.11 version: 1.0.11 + vscode-uri: + specifier: ^3.0.8 + version: 3.0.8 devDependencies: '@types/node': specifier: latest @@ -242,9 +251,6 @@ importers: vscode-languageserver-protocol: specifier: ^3.17.5 version: 3.17.5 - vscode-uri: - specifier: ^3.0.8 - version: 3.0.8 packages/tsc: dependencies: @@ -335,6 +341,23 @@ packages: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + /@clack/core@0.3.4: + resolution: {integrity: sha512-H4hxZDXgHtWTwV3RAVenqcC4VbJZNegbBjlPvzOzCouXtS2y3sDvlO3IsbrPNWuLWPPlYVYPghQdSF64683Ldw==} + dependencies: + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: true + + /@clack/prompts@0.7.0: + resolution: {integrity: sha512-0MhX9/B4iL6Re04jPrttDm+BsP8y6mS7byuv0BvXgdXhbV5PdlsHt55dvNsuBCPZ7xq1oTAOOuotR9NFbQyMSA==} + dependencies: + '@clack/core': 0.3.4 + picocolors: 1.0.0 + sisteransi: 1.0.5 + dev: true + bundledDependencies: + - is-unicode-supported + /@emmetio/abbreviation@2.3.3: resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} dependencies: @@ -1456,6 +1479,32 @@ packages: engines: {node: '>=18'} dev: true + /@tsslint/cli@0.0.10(typescript@5.3.3): + resolution: {integrity: sha512-0F0LbGUbFbVinvNjA3qCyx6ynZA4ScBR2Tr1ZHOXog6BnR9wrvXMqPA/cud2GMftO7mRDMtsh1mBop9NsZeHtQ==} + hasBin: true + peerDependencies: + typescript: '*' + dependencies: + '@clack/prompts': 0.7.0 + '@tsslint/config': 0.0.10 + '@tsslint/core': 0.0.10 + glob: 10.3.10 + typescript: 5.3.3 + dev: true + + /@tsslint/config@0.0.10: + resolution: {integrity: sha512-WdLrCFBH1VT6VOIaFifsIZrMeiLO4Vss5HGwxx/G+rWl90BwJXXOtIBCr00nDPISv+YNokD4QYMSJWrjlvBVCQ==} + dependencies: + esbuild: 0.19.12 + dev: true + + /@tsslint/core@0.0.10: + resolution: {integrity: sha512-21RrlBbKeTwk2HPmwG9iNBws3F+S1MWsGT4gI0mchbJBQf9THMNcalK2c24knDObSjryfRdeWuIBFalldOaPOw==} + dependencies: + error-stack-parser: 2.1.4 + source-map-support: 0.5.21 + dev: true + /@tufjs/canonical-json@2.0.0: resolution: {integrity: sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==} engines: {node: ^16.14.0 || >=18.0.0} @@ -1590,6 +1639,14 @@ packages: dependencies: muggle-string: 0.4.1 + /@volar/tsl-config@0.0.0-20240315(tsl@0.0.10): + resolution: {integrity: sha512-axWGYd2nEVW5U/ZLDltNwf/Y21mEoRUXMaHIWw+dwJN/RuKEyUZnl+YZpbvRD/CQQxw+r/fvq1AWcolsx5tqYQ==} + peerDependencies: + tsl: '*' + dependencies: + tsl: 0.0.10(typescript@5.3.3) + dev: true + /@volar/typescript@2.1.2: resolution: {integrity: sha512-lhTancZqamvaLvoz0u/uth8dpudENNt2LFZOWCw9JZiX14xRFhdhfzmphiCRb7am9E6qAJSbdS/gMt1utXAoHQ==} dependencies: @@ -1896,6 +1953,10 @@ packages: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} dev: true + /buffer-from@1.1.2: + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + dev: true + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} dependencies: @@ -2503,6 +2564,12 @@ packages: is-arrayish: 0.2.1 dev: true + /error-stack-parser@2.1.4: + resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==} + dependencies: + stackframe: 1.3.4 + dev: true + /es-define-property@1.0.0: resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} engines: {node: '>= 0.4'} @@ -4590,6 +4657,10 @@ packages: simple-concat: 1.0.1 dev: true + /sisteransi@1.0.5: + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + dev: true + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -4635,6 +4706,13 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} + /source-map-support@0.5.21: + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} @@ -4682,6 +4760,10 @@ packages: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true + /stackframe@1.3.4: + resolution: {integrity: sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==} + dev: true + /std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} dev: true @@ -4858,6 +4940,17 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true + /tsl@0.0.10(typescript@5.3.3): + resolution: {integrity: sha512-hy7OuMp55TkicjtDKgpg1q2xq1Dboi2YWM+JexNEP4MZr3n+Fr5KXv64ZXzJx1NbPhMHbOuM36bHcFFXE4Ofcg==} + hasBin: true + dependencies: + '@tsslint/cli': 0.0.10(typescript@5.3.3) + '@tsslint/config': 0.0.10 + '@tsslint/core': 0.0.10 + transitivePeerDependencies: + - typescript + dev: true + /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} dev: true diff --git a/tsl.config.ts b/tsl.config.ts new file mode 100644 index 000000000..fd2e028ee --- /dev/null +++ b/tsl.config.ts @@ -0,0 +1 @@ +export { default } from '@volar/tsl-config';