Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 0 additions & 18 deletions .eslintrc.js

This file was deleted.

6 changes: 6 additions & 0 deletions .github/workflows/ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,12 @@ jobs:
- name: Install dependencies
run: npm install

- name: Typecheck
run: npm run typecheck

- name: Lint
run: npm run lint -- --max-warnings=0

- name: Build the extension
run: npm run compile

Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,27 @@ All notable changes to the "promptitude" extension will be documented in this fi

## vNext

## [1.5.1] - 2025-10-21

### Changed

- Dev tooling: Bumped TypeScript to 5.9.3 and @types/node to 20.19.23.
- Pinned @types/vscode to ~1.70.0 to align with `engines.vscode: ^1.70.0` and avoid compiling against newer VS Code API types than we officially support.
- Dev tooling: Upgraded ESLint to 9.x and @typescript-eslint (parser/plugin) to 8.x.
- Migrated from legacy .eslintrc to ESLint v9 flat config (`eslint.config.cjs`).
- CI: Added ESLint lint step to CI/CD workflow to enforce lint on PRs/builds.
- CI: Added a TypeScript typecheck step (tsc --noEmit) and made ESLint fail on warnings (--max-warnings=0).

### Security

- Resolved high-severity advisory on tar-fs via `npm audit fix` (transitive through @vscode/vsce -> keytar -> prebuild-install).

### Notes

- No runtime or user-facing behavior changes; development-only updates. No backward-incompatible changes in this release. You may see slightly different lint warnings due to rule engine updates in ESLint 9.

## [1.5.0] - 2025-10-21

### Fixed

- **VS Code Profile Support**: Fixed issue where extension didn't work properly with multiple VS Code profiles
Expand Down
44 changes: 44 additions & 0 deletions eslint.config.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
const tsParser = require('@typescript-eslint/parser');
const tsPlugin = require('@typescript-eslint/eslint-plugin');

module.exports = [
{
ignores: ['out', 'dist', '**/*.d.ts'],
},
{
files: ['**/*.ts'],
languageOptions: {
parser: tsParser,
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
},
},
plugins: {
'@typescript-eslint': tsPlugin,
},
rules: {
'@typescript-eslint/naming-convention': [
'warn',
// Most specific: private static readonly class properties (constants)
{ selector: 'property', modifiers: ['private', 'static', 'readonly'], format: ['UPPER_CASE', 'camelCase'] },
// Static readonly properties (constants)
{ selector: 'property', modifiers: ['static', 'readonly'], format: ['UPPER_CASE', 'camelCase'] },
// Types and interfaces use PascalCase
{ selector: 'typeLike', format: ['PascalCase'] },
// Enum members can be PascalCase (Idle) or UPPER_CASE if desired
{ selector: 'enumMember', format: ['PascalCase', 'UPPER_CASE'] },
// Variables/consts: camelCase by default, allow UPPER_CASE for true constants
{ selector: 'variableLike', format: ['camelCase', 'UPPER_CASE'] },
// Generic member-like fallback
{ selector: 'memberLike', modifiers: ['static', 'readonly'], format: ['UPPER_CASE', 'camelCase'] },
// Private members allow leading underscore
{ selector: 'memberLike', modifiers: ['private'], format: ['camelCase'], leadingUnderscore: 'allow' },
],
curly: 'warn',
eqeqeq: 'warn',
'no-throw-literal': 'warn',
semi: 'warn',
},
},
];
Loading