diff --git a/.github/renovate.json b/.github/renovate.json index f02f654..66f4a27 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,6 +1,4 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "github>ivuorinen/renovate-config" - ] + "extends": ["github>ivuorinen/renovate-config"] } diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index aa3547c..8449c36 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - language: ['actions,javascript', 'cpp'] # Add languages used in your actions + language: ["actions,javascript", "cpp"] # Add languages used in your actions steps: - name: Checkout repository diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..6df7637 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,24 @@ +# Dependencies +node_modules/ + +# Generated files +src/parser.c +src/grammar.json +src/node-types.json +src/tree_sitter/ + +# Build artifacts +build/ +dist/ + +# Logs +*.log +megalinter-reports/ + +# Test specs (shell scripts have specific formatting) +test/spec/ + +# Lock files +package-lock.json +pnpm-lock.yaml +yarn.lock diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..8d6ed28 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,11 @@ +{ + "semi": true, + "trailingComma": "all", + "singleQuote": false, + "printWidth": 100, + "tabWidth": 2, + "useTabs": false, + "arrowParens": "always", + "endOfLine": "lf", + "proseWrap": "preserve" +} diff --git a/.serena/memories/complete_project_overview_2025.md b/.serena/memories/complete_project_overview_2025.md index 594ff4d..be3abe3 100644 --- a/.serena/memories/complete_project_overview_2025.md +++ b/.serena/memories/complete_project_overview_2025.md @@ -30,20 +30,20 @@ module.exports = grammar(bashGrammar, { [$.pipeline], // 2 essential ShellSpec conflicts [$.command_name, $.shellspec_data_block], - [$.shellspec_hook_block] + [$.shellspec_hook_block], ], rules: { // 8 ShellSpec rule extensions - shellspec_describe_block, // Describe/fDescribe/xDescribe - shellspec_context_block, // Context/ExampleGroup variants - shellspec_it_block, // It/Example/Specify variants - shellspec_hook_block, // BeforeEach/AfterEach/etc blocks - shellspec_utility_block, // Parameters/Skip/Pending/Todo - shellspec_data_block, // Data blocks with statements/arguments - shellspec_hook_statement, // Before/After statements - shellspec_directive_statement // Include/Skip if - } -}) + shellspec_describe_block, // Describe/fDescribe/xDescribe + shellspec_context_block, // Context/ExampleGroup variants + shellspec_it_block, // It/Example/Specify variants + shellspec_hook_block, // BeforeEach/AfterEach/etc blocks + shellspec_utility_block, // Parameters/Skip/Pending/Todo + shellspec_data_block, // Data blocks with statements/arguments + shellspec_hook_statement, // Before/After statements + shellspec_directive_statement, // Include/Skip if + }, +}); ``` ### Supported ShellSpec Constructs diff --git a/.serena/memories/github_workflows_optimization_2025.md b/.serena/memories/github_workflows_optimization_2025.md index c84647f..6782aa0 100644 --- a/.serena/memories/github_workflows_optimization_2025.md +++ b/.serena/memories/github_workflows_optimization_2025.md @@ -139,7 +139,7 @@ check-ci: ### 2. Release Workflow (`release.yml`) -- **Triggers**: tags (v*.*.*), manual dispatch +- **Triggers**: tags (v*.*.\*), manual dispatch - **Jobs**: validate, check-ci, security, release - **Purpose**: Streamlined release process with CI dependency diff --git a/.serena/project.yml b/.serena/project.yml index b2be8b1..0378ad5 100644 --- a/.serena/project.yml +++ b/.serena/project.yml @@ -1,6 +1,6 @@ ignore_all_files_in_gitignore: true ignored_paths: -- megalinter-reports + - megalinter-reports read_only: false # list of tool names to exclude. We recommend not excluding any tools, see the readme for more details. @@ -46,8 +46,8 @@ excluded_tools: [] initial_prompt: "" project_name: "tree-sitter-shellspec" languages: -- cpp -- typescript -- bash + - cpp + - typescript + - bash included_optional_tools: [] encoding: utf-8 diff --git a/package-lock.json b/package-lock.json index 5c8a402..2a3ba45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,6 +14,7 @@ "devDependencies": { "markdownlint-cli": "^0.46.0", "nodemon": "^3.0.1", + "prettier": "^3.6.2", "tree-sitter-cli": "^0.25.0" } }, @@ -1278,6 +1279,22 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/prettier": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", diff --git a/package.json b/package.json index 8f21cf1..ff50c58 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "lint": "npx mega-linter-runner", "lint:yaml": "yamllint .", "lint:markdown": "markdownlint . --config .markdownlint.json --ignore node_modules --fix", + "format": "prettier --write .", + "format:check": "prettier --check .", "precommit": "pre-commit run --all-files", "clean": "rm -rf src/parser.c src/grammar.json src/node-types.json", "rebuild": "npm run clean && npm run generate" @@ -37,6 +39,7 @@ "devDependencies": { "markdownlint-cli": "^0.46.0", "nodemon": "^3.0.1", + "prettier": "^3.6.2", "tree-sitter-cli": "^0.25.0" } } diff --git a/tree-sitter.json b/tree-sitter.json index 7b55153..c0956b3 100644 --- a/tree-sitter.json +++ b/tree-sitter.json @@ -5,15 +5,9 @@ "camelcase": "Shellspec", "scope": "source.shellspec", "path": ".", - "file-types": [ - "shellspec" - ], - "highlights": [ - "queries/highlights.scm" - ], - "locals": [ - "queries/locals.scm" - ], + "file-types": ["shellspec"], + "highlights": ["queries/highlights.scm"], + "locals": ["queries/locals.scm"], "injection-regex": "shellspec" } ],