diff --git a/.eslintrc.json.typings b/.eslintrc.json.typings deleted file mode 100644 index 9cb5491d..00000000 --- a/.eslintrc.json.typings +++ /dev/null @@ -1,107 +0,0 @@ -{ - "env": { - "browser": true, - "es2021": true, - "node": true - }, - "parser": "@typescript-eslint/parser", - "plugins": [ - "@stylistic/ts", - "@typescript-eslint", - "jsdoc" - ], - "rules": { - "@stylistic/ts/indent": [ - "warn", - 2 - ], - "@stylistic/ts/semi": [ - "warn", - "always" - ], - "@stylistic/ts/quotes": [ - "warn", - "single", - { "allowTemplateLiterals": true } - ], - - "@typescript-eslint/array-type": [ - "warn", - { - "default": "array", - "readonly": "generic" - } - ], - "@typescript-eslint/explicit-function-return-type": [ - "warn", - { - "allowExpressions": true - } - ], - "@typescript-eslint/member-delimiter-style": [ - "warn", - { - "multiline": { - "delimiter": "semi", - "requireLast": true - }, - "singleline": { - "delimiter": "comma", - "requireLast": false - } - } - ], - "@typescript-eslint/naming-convention": [ - "warn", - { "selector": "typeLike", "format": ["PascalCase"] }, - { "selector": "interface", "format": ["PascalCase"], "prefix": ["I"] } - ], - "@typescript-eslint/prefer-namespace-keyword": "warn", - "@typescript-eslint/type-annotation-spacing": "warn", - - "comma-dangle": [ - "warn", - { - "objects": "never", - "arrays": "never", - "functions": "never" - } - ], - "curly": [ - "warn", - "multi-line" - ], - "eol-last": "warn", - "eqeqeq": [ - "warn", - "always" - ], - "jsdoc/check-alignment": 1, - "jsdoc/check-param-names": 1, - "keyword-spacing": "warn", - "max-len": [ - "warn", - { - "code": 1000, // Don't enforce for code - "comments": 80, - "ignoreUrls": true, - "ignorePattern": "^ *(?\\* Ps=)" - } - ], - "no-extra-semi": "error", - "no-irregular-whitespace": "warn", - "no-trailing-spaces": "warn", - "object-curly-spacing": [ - "warn", - "always" - ], - "spaced-comment": [ - "warn", - "always", - { - "markers": ["/"], - "exceptions": ["-"] - } - ] - } -} diff --git a/eslint.config.typings.mjs b/eslint.config.typings.mjs new file mode 100644 index 00000000..773a9159 --- /dev/null +++ b/eslint.config.typings.mjs @@ -0,0 +1,56 @@ +// @ts-check +import stylistic from '@stylistic/eslint-plugin'; +import jsdoc from 'eslint-plugin-jsdoc'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + { + files: ['typings/**/*.d.ts'], + plugins: { + '@stylistic': stylistic, + '@typescript-eslint': tseslint.plugin, + jsdoc + }, + languageOptions: { + parser: tseslint.parser + }, + rules: { + '@stylistic/indent': ['warn', 2], + '@stylistic/semi': ['warn', 'always'], + '@stylistic/quotes': ['warn', 'single', { allowTemplateLiterals: true }], + '@stylistic/member-delimiter-style': ['warn', { + multiline: { delimiter: 'semi', requireLast: true }, + singleline: { delimiter: 'comma', requireLast: false } + }], + '@stylistic/type-annotation-spacing': 'warn', + + '@typescript-eslint/array-type': ['warn', { default: 'array', readonly: 'generic' }], + '@typescript-eslint/explicit-function-return-type': ['warn', { allowExpressions: true }], + '@typescript-eslint/naming-convention': [ + 'warn', + { selector: 'typeLike', format: ['PascalCase'] }, + { selector: 'interface', format: ['PascalCase'], prefix: ['I'] } + ], + '@typescript-eslint/prefer-namespace-keyword': 'warn', + + 'comma-dangle': ['warn', { objects: 'never', arrays: 'never', functions: 'never' }], + 'curly': ['warn', 'multi-line'], + 'eol-last': 'warn', + 'eqeqeq': ['warn', 'always'], + 'jsdoc/check-alignment': 'warn', + 'jsdoc/check-param-names': 'warn', + 'keyword-spacing': 'warn', + 'max-len': ['warn', { + code: 1000, + comments: 80, + ignoreUrls: true, + ignorePattern: '^ *(?\\* Ps=)' + }], + 'no-extra-semi': 'error', + 'no-irregular-whitespace': 'warn', + 'no-trailing-spaces': 'warn', + 'object-curly-spacing': ['warn', 'always'], + 'spaced-comment': ['warn', 'always', { markers: ['/'], exceptions: ['-'] }] + } + } +); diff --git a/package.json b/package.json index 6094a060..ecf530ca 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "posttest": "npm run lint", "lint": "eslint --max-warnings 0 src/ addons/", "lint-fix": "eslint --fix src/ addons/", - "lint-api": "eslint --no-eslintrc -c .eslintrc.json.typings --max-warnings 0 --no-ignore --ext .d.ts typings/", + "lint-api": "eslint --config eslint.config.typings.mjs --max-warnings 0 typings/", "test-unit": "node ./bin/test_unit.js", "test-unit-coverage": "node ./bin/test_unit.js --coverage", "test-unit-dev": "cross-env NODE_PATH='./out' mocha", diff --git a/typings/xterm-headless.d.ts b/typings/xterm-headless.d.ts index 2c6f971e..0e6966be 100644 --- a/typings/xterm-headless.d.ts +++ b/typings/xterm-headless.d.ts @@ -1231,7 +1231,7 @@ declare module '@xterm/headless' { * @param id Specifies the function identifier under which the callback * gets registered, e.g. {intermediates: '%' final: 'G'} for * default charset selection. - * @param callback The function to handle the sequence. + * @param handler The function to handle the sequence. * Return true if the sequence was handled; false if we should try * a previous handler (set by addEscHandler or setEscHandler). * The most recently added handler is tried first. diff --git a/typings/xterm.d.ts b/typings/xterm.d.ts index 1009f5c7..95895c52 100644 --- a/typings/xterm.d.ts +++ b/typings/xterm.d.ts @@ -1830,7 +1830,7 @@ declare module '@xterm/xterm' { * @param id Specifies the function identifier under which the callback gets * registered, e.g. {intermediates: '%' final: 'G'} for default charset * selection. - * @param callback The function to handle the sequence. + * @param handler The function to handle the sequence. * Return `true` if the sequence was handled, `false` if the parser should * try a previous handler. The most recently added handler is tried first. * @returns An IDisposable you can call to remove this handler.