Add yaml-language-server: comment to YAML sample config - #2486
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2486 +/- ##
=======================================
Coverage 93.60% 93.60%
=======================================
Files 131 131
Lines 28215 28215
=======================================
+ Hits 26410 26411 +1
+ Misses 1805 1804 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
📦 Cargo Bloat ComparisonBinary size change: +0.00% (29.6 MiB → 29.6 MiB) Expand for cargo-bloat outputHead Branch ResultsBase Branch Results |
⚡️ Hyperfine BenchmarksSummary: 0 regressions, 0 improvements above the 10% threshold. Environment
CLI CommandsBenchmarking basic commands in the main repo:
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base --version |
2.4 ± 0.1 | 2.3 | 2.9 | 1.00 |
prek-head --version |
2.5 ± 0.1 | 2.3 | 2.7 | 1.01 ± 0.05 |
prek list
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base list |
10.3 ± 0.3 | 9.7 | 11.1 | 1.01 ± 0.04 |
prek-head list |
10.2 ± 0.3 | 9.6 | 11.0 | 1.00 |
prek validate-config .pre-commit-config.yaml
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base validate-config .pre-commit-config.yaml |
3.5 ± 0.1 | 3.4 | 3.7 | 1.02 ± 0.03 |
prek-head validate-config .pre-commit-config.yaml |
3.5 ± 0.1 | 3.3 | 3.6 | 1.00 |
prek sample-config
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base sample-config |
2.7 ± 0.1 | 2.6 | 2.9 | 1.00 |
prek-head sample-config |
2.7 ± 0.1 | 2.6 | 2.9 | 1.00 ± 0.03 |
Cold vs Warm Runs
Comparing first run (cold) vs subsequent runs (warm cache):
prek run --all-files (cold - no cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
39.3 ± 1.2 | 36.9 | 40.7 | 1.00 |
prek-head run --all-files |
39.7 ± 1.5 | 37.2 | 42.0 | 1.01 ± 0.05 |
prek run --all-files (warm - with cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
39.4 ± 1.2 | 37.3 | 41.4 | 1.00 |
prek-head run --all-files |
39.7 ± 1.2 | 37.6 | 41.1 | 1.01 ± 0.04 |
Full Hook Suite
Running the builtin hook suite on the benchmark workspace:
prek run --all-files (full builtin hook suite)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --all-files |
39.5 ± 1.3 | 36.7 | 42.5 | 1.01 ± 0.04 |
prek-head run --all-files |
39.0 ± 1.0 | 36.0 | 41.2 | 1.00 |
Individual Hook Performance
Benchmarking each hook individually on the test repo:
prek run trailing-whitespace --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run trailing-whitespace --all-files |
13.6 ± 0.4 | 13.0 | 14.5 | 1.00 |
prek-head run trailing-whitespace --all-files |
13.8 ± 0.5 | 13.2 | 15.0 | 1.02 ± 0.05 |
prek run end-of-file-fixer --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run end-of-file-fixer --all-files |
12.0 ± 0.4 | 11.4 | 13.1 | 1.00 |
prek-head run end-of-file-fixer --all-files |
12.1 ± 0.5 | 11.2 | 13.7 | 1.00 ± 0.05 |
prek run check-json --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-json --all-files |
8.8 ± 0.3 | 8.2 | 9.3 | 1.02 ± 0.05 |
prek-head run check-json --all-files |
8.6 ± 0.3 | 8.1 | 9.1 | 1.00 |
prek run check-yaml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-yaml --all-files |
8.2 ± 0.1 | 8.0 | 8.4 | 1.00 |
prek-head run check-yaml --all-files |
8.3 ± 0.2 | 8.1 | 8.8 | 1.01 ± 0.03 |
prek run check-toml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-toml --all-files |
8.4 ± 0.3 | 8.0 | 9.3 | 1.00 |
prek-head run check-toml --all-files |
8.5 ± 0.3 | 8.2 | 9.2 | 1.01 ± 0.05 |
prek run check-xml --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-xml --all-files |
8.7 ± 0.3 | 8.2 | 9.6 | 1.01 ± 0.06 |
prek-head run check-xml --all-files |
8.6 ± 0.4 | 7.9 | 9.4 | 1.00 |
prek run detect-private-key --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run detect-private-key --all-files |
11.9 ± 0.4 | 11.2 | 12.8 | 1.00 |
prek-head run detect-private-key --all-files |
12.1 ± 0.8 | 11.3 | 14.5 | 1.01 ± 0.07 |
prek run fix-byte-order-marker --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run fix-byte-order-marker --all-files |
13.5 ± 0.8 | 12.3 | 15.6 | 1.00 |
prek-head run fix-byte-order-marker --all-files |
13.6 ± 1.0 | 12.3 | 16.3 | 1.01 ± 0.09 |
Installation Performance
Benchmarking hook installation (fast path hooks skip Python setup):
prek install-hooks (cold - no cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base install-hooks |
5.0 ± 0.1 | 4.9 | 5.2 | 1.00 |
prek-head install-hooks |
5.1 ± 0.1 | 5.0 | 5.1 | 1.01 ± 0.03 |
prek install-hooks (warm - with cache)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base install-hooks |
5.0 ± 0.1 | 4.9 | 5.1 | 1.00 |
prek-head install-hooks |
5.0 ± 0.0 | 5.0 | 5.1 | 1.00 ± 0.02 |
File Filtering/Scoping Performance
Testing different file selection modes:
prek run (staged files only)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run |
26.2 ± 0.5 | 25.6 | 27.0 | 1.00 |
prek-head run |
26.2 ± 0.3 | 25.6 | 27.2 | 1.00 ± 0.02 |
prek run --files '*.json' (specific file type)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --files '*.json' |
5.7 ± 0.1 | 5.6 | 5.8 | 1.00 |
prek-head run --files '*.json' |
5.7 ± 0.1 | 5.6 | 5.8 | 1.00 ± 0.02 |
Workspace Discovery & Initialization
Benchmarking hook discovery and initialization overhead:
prek run --dry-run --all-files (measures init overhead)
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run --dry-run --all-files |
7.8 ± 0.3 | 7.5 | 8.6 | 1.00 ± 0.04 |
prek-head run --dry-run --all-files |
7.8 ± 0.1 | 7.6 | 8.0 | 1.00 |
Meta Hooks Performance
Benchmarking meta hooks separately:
prek run check-hooks-apply --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-hooks-apply --all-files |
9.2 ± 0.1 | 9.0 | 9.3 | 1.00 ± 0.02 |
prek-head run check-hooks-apply --all-files |
9.2 ± 0.1 | 9.0 | 9.4 | 1.00 |
prek run check-useless-excludes --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run check-useless-excludes --all-files |
9.2 ± 0.1 | 9.0 | 9.5 | 1.00 |
prek-head run check-useless-excludes --all-files |
9.3 ± 0.3 | 9.0 | 9.9 | 1.02 ± 0.03 |
prek run identity --all-files
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
prek-base run identity --all-files |
8.2 ± 0.1 | 8.1 | 8.4 | 1.01 ± 0.02 |
prek-head run identity --all-files |
8.1 ± 0.1 | 7.9 | 8.5 | 1.00 |
Owner
|
Thanks! |
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Aug 11, 2026
This MR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [prek](https://github.com/j178/prek) | tools | patch | `0.4.10` → `0.4.13` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>j178/prek (prek)</summary> ### [`v0.4.13`](https://github.com/j178/prek/blob/HEAD/CHANGELOG.md#0413) [Compare Source](j178/prek@v0.4.12...v0.4.13) Released on 2026-08-10. ##### Highlights ##### Manage hook tools with mise The new `language: mise` support lets hooks install tools using [`mise`](https://mise.jdx.dev/) in an isolated environment: ```yaml repos: - repo: local hooks: - id: golangci-lint name: golangci-lint language: mise additional_dependencies: ["aqua:golangci/golangci-lint@2"] entry: golangci-lint run --fast-only ./... pass_filenames: false ``` ##### Run commands in hook environments The new `prek exec` subcommand can run an explicit command in a configured hook's prepared environment. For example, the hook above makes its managed binary available to this command: ```console $ prek exec golangci-lint -- golangci-lint --version ``` ##### Enhancements - Add `mise` language support ([#​2540](j178/prek#2540)) - Add `deny-filename-pattern` and `require-filename-pattern` hooks ([#​2488](j178/prek#2488)) - Add `prek exec` for running commands in a hook environment ([#​2478](j178/prek#2478)) - Add `yaml-language-server:` comment to YAML sample config ([#​2486](j178/prek#2486)) - Make `prek cache size` output terminal-aware ([#​2508](j178/prek#2508)) - Match file regexes against path bytes ([#​2541](j178/prek#2541)) - Show hook aliases in run output ([#​2497](j178/prek#2497)) - Show hook descriptions in run output ([#​2490](j178/prek#2490)) ##### Performance - Avoid env cache scans for skipped hooks ([#​2502](j178/prek#2502)) - Cache Node version queries ([#​2500](j178/prek#2500)) ##### Bug fixes - Fix Node hook installation with npm 11 ([#​2487](j178/prek#2487)) - Isolate dependency installs from inherited Git repository state ([#​2506](j178/prek#2506)) ##### Documentation - Document combined group filtering ([#​2495](j178/prek#2495)) - Explain what prek does in README ([#​2507](j178/prek#2507)) - Refresh "Why prek" highlights ([#​2474](j178/prek#2474)) ##### Contributors - [@​will-wright-eng](https://github.com/will-wright-eng) - [@​Repiteo](https://github.com/Repiteo) - [@​j178](https://github.com/j178) ### [`v0.4.12`](https://github.com/j178/prek/blob/HEAD/CHANGELOG.md#0412) [Compare Source](j178/prek@v0.4.11...v0.4.12) Released on 2026-08-03. ##### Enhancements - Add `--require-group` for hook group intersections ([#​2472](j178/prek#2472)) - Align fast-path and builtin pre-commit hooks ([#​2433](j178/prek#2433)) - Do not shuffle file list for verbose output ([#​2431](j178/prek#2431)) - Improve top-level command descriptions ([#​2429](j178/prek#2429)) - Install `uv` from Astral CDN and drop source racing ([#​2455](j178/prek#2455)) - Make `prek install --force` bypass external hooks paths ([#​2437](j178/prek#2437)) - Show builtin hook flags in verbose list output ([#​2427](j178/prek#2427)) - Verify uv release archive checksums ([#​2456](j178/prek#2456)) ##### Performance - Precompute file tags in parallel ([#​2440](j178/prek#2440)) - Skip diffs after known hook modifications ([#​2447](j178/prek#2447)) - Skip worktree diffs for read-only languages ([#​2432](j178/prek#2432)) - Track builtin hook file changes directly ([#​2404](j178/prek#2404)) ##### Bug fixes - Use full object IDs in diff snapshots ([#​2448](j178/prek#2448)) ##### Documentation - Add a multi-repository configuration example ([#​2434](j178/prek#2434)) - Rewrite benchmark documentation ([#​2469](j178/prek#2469)) ##### Contributors - [@​j178](https://github.com/j178) - [@​BitWeaverDev](https://github.com/BitWeaverDev) - [@​allanlewis](https://github.com/allanlewis) ### [`v0.4.11`](https://github.com/j178/prek/blob/HEAD/CHANGELOG.md#0411) [Compare Source](j178/prek@v0.4.10...v0.4.11) Released on 2026-07-25. ##### Highlights - This release adds two new builtin hooks, `deny-pattern` and `require-pattern`, as native alternatives for `pygrep` use cases. `deny-pattern` fails when a configured pattern is found, while `require-pattern` ensures every selected file contains a match. By matching natively without spawning a Python subprocess, they run over 4x faster than `pygrep` in benchmarks. Note that they use [Rust `regex` syntax](https://docs.rs/regex/latest/regex/#syntax), which does not support look-around features such as negative lookbehind. - `prek run` now supports `--glob <PATTERN>` to run hooks on tracked files matching a glob. It can be repeated or combined with `--files` and `--directory`. - Hook priorities now support reusable aliases: ```toml [priorities] checks = 10 [[repos]] repo = "builtin" hooks = [ { id = "check-json", priority = "checks" }, { id = "check-yaml", priority = "checks" }, ] ``` This makes parallel scheduling easier to read and maintain. ##### Enhancements - Add `deny-pattern` and `require-pattern` builtin hooks ([#​2359](j178/prek#2359)) - Support `--glob` patterns in `prek run` ([#​2381](j178/prek#2381)) - Support reusable aliases for hook priorities ([#​2331](j178/prek#2331)) - Implement `requirements-txt-fixer` as a builtin hook ([#​2390](j178/prek#2390)) - Improve user-facing warnings and errors ([#​2380](j178/prek#2380)) - Install Node hooks through git url ([#​2394](j178/prek#2394)) ##### Performance - Reduce blocking-pool overhead in file hooks ([#​2384](j178/prek#2384)) - Speed up mixed-line-ending scans with memchr2 ([#​2391](j178/prek#2391)) ##### Bug fixes - Honor filenames in builtin hook entry and args ([#​2389](j178/prek#2389)) - Match identify tags across filename parts ([#​2399](j178/prek#2399)) - Preserve hook output order with a shared pipe ([#​2385](j178/prek#2385)) - Preserve system download policy when applying metadata ([#​2395](j178/prek#2395)) ##### Contributors - [@​j178](https://github.com/j178) - [@​chrisoro](https://github.com/chrisoro) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yODYuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI4OC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiLCJhdXRvbWF0aW9uOmJvdC1hdXRob3JlZCIsImRlcGVuZGVuY3ktdHlwZTo6cGF0Y2giXX0=-->
This was referenced Aug 12, 2026
jylenhof
pushed a commit
to jylenhof/mise-en-place-tips
that referenced
this pull request
Aug 12, 2026
Automated mise tool upgrades from local config. Updated tools: - `prek` Command: `mise upgrade --bump --local prek` <details> <summary>Version changelog (prek)</summary> | Tool | Requested | Installed | |------|-----------|-----------| | `prek` | `0.4.11` → `0.4.13` | `0.4.11` → `0.4.13` | </details> <details> <summary>Release notes (1 tools)</summary> <details> <summary>prek: `0.4.11` → `0.4.13` (j178/prek)</summary> ### v0.4.12 ## Release Notes Released on 2026-08-03. ### Enhancements - Add `--require-group` for hook group intersections ([#2472](j178/prek#2472)) - Align fast-path and builtin pre-commit hooks ([#2433](j178/prek#2433)) - Do not shuffle file list for verbose output ([#2431](j178/prek#2431)) - Improve top-level command descriptions ([#2429](j178/prek#2429)) - Install `uv` from Astral CDN and drop source racing ([#2455](j178/prek#2455)) - Make `prek install --force` bypass external hooks paths ([#2437](j178/prek#2437)) - Show builtin hook flags in verbose list output ([#2427](j178/prek#2427)) - Verify uv release archive checksums ([#2456](j178/prek#2456)) ### Performance - Precompute file tags in parallel ([#2440](j178/prek#2440)) - Skip diffs after known hook modifications ([#2447](j178/prek#2447)) - Skip worktree diffs for read-only languages ([#2432](j178/prek#2432)) - Track builtin hook file changes directly ([#2404](j178/prek#2404)) ### Bug fixes - Use full object IDs in diff snapshots ([#2448](j178/prek#2448)) ### Documentation - Add a multi-repository configuration example ([#2434](j178/prek#2434)) - Rewrite benchmark documentation ([#2469](j178/prek#2469)) ### Contributors - @j178 - @BitWeaverDev - @allanlewis ## Install prek 0.4.12 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://github.com/j178/prek/releases/download/v0.4.12/prek-installer.sh | sh ``` ### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://github.com/j178/prek/releases/download/v0.4.12/prek-installer.ps1 | iex" ```… (truncated) ### v0.4.13 ## Release Notes Released on 2026-08-10. ### Highlights #### Manage hook tools with mise The new `language: mise` support lets hooks install tools using [`mise`](https://mise.jdx.dev/) in an isolated environment: ```yaml repos: - repo: local hooks: - id: golangci-lint name: golangci-lint language: mise additional_dependencies: ["aqua:golangci/golangci-lint@2"] entry: golangci-lint run --fast-only ./... pass_filenames: false ``` #### Run commands in hook environments The new `prek exec` subcommand can run an explicit command in a configured hook's prepared environment. For example, the hook above makes its managed binary available to this command: ```console $ prek exec golangci-lint -- golangci-lint --version ``` ### Enhancements - Add `mise` language support ([#2540](j178/prek#2540)) - Add `deny-filename-pattern` and `require-filename-pattern` hooks ([#2488](j178/prek#2488)) - Add `prek exec` for running commands in a hook environment ([#2478](j178/prek#2478)) - Add `yaml-language-server:` comment to YAML sample config ([#2486](j178/prek#2486)) - Make `prek cache size` output terminal-aware ([#2508](j178/prek#2508)) - Match file regexes against path bytes ([#2541](j178/prek#2541)) - Show hook aliases in run output ([#2497](j178/prek#2497)) - Show hook descriptions in run output ([#2490](j178/prek#2490)) ### Performance - Avoid env cache scans for skipped hooks ([#2502](j178/prek#2502)) - Cache Node version queries ([#2500](j178/prek#2500)) ### Bug fixes - Fix Node hook installation with npm 11 ([#2487](j178/prek#2487)) - Isolate dependency installs from inherited Git repository state ([#2506](https://github.com/j178/prek/pull/25… (truncated) </details> </details> Modified files: - `.mise.toml` Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Many IDEs feature automatic schema recognition of common YAML files, including
.pre-commit-config.yaml. However, the schema loaded by default for these files is for base pre-commit, which this project has already diverged from. We already manually assign the schema used for TOML, but no equivalent exists for YAML. While no official schema specification syntax exists, the most commonly recognized one by far is# yaml-language-server: $schema=....This PR adds the above comment to the sample config for YAML files, making prek's schema IDE-aware regardless of which format is selected.