Conversation
Summary of ChangesHello @matdibu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request integrates Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new builtin for cmake_format. The implementation is straightforward and correct. I've suggested an improvement to add project indicators for auto-detection and include tests to ensure its functionality, which appear to be common practices for builtins in this project. These changes will make the new builtin more robust and better integrated.
| import "../Builtins.pkl" | ||
| import "../Config.pkl" | ||
|
|
||
| @Builtins.meta { | ||
| category = "Other Languages" | ||
| description = "Source code formatter for cmake listfiles" | ||
| } | ||
| cmake_format = new Config.Step { | ||
| glob = List("**/CMakeLists.txt", "**/*.cmake") | ||
| check = "cmake-format --check {{ files }}" | ||
| fix = "cmake-format --in-place {{ files }}" | ||
| } |
There was a problem hiding this comment.
This is a great start for the cmake_format builtin. To make it more robust and better integrated with the hk ecosystem, I recommend a couple of enhancements:
- Add
project_indicators: This will allowhkto automatically detect when a project is using CMake and suggest enabling this formatter. - Add tests: Including tests will verify the step's functionality and protect against future regressions.
I've provided a code suggestion below that incorporates both of these improvements.
import "../Builtins.pkl"
import "../Config.pkl"
import "./test/helpers.pkl" as Test
@Builtins.meta {
category = "Other Languages"
description = "Source code formatter for cmake listfiles"
project_indicators = List(
new Builtins.ProjectIndicator {
glob = "**/CMakeLists.txt"
}
)
}
cmake_format = new Config.Step {
glob = List("**/CMakeLists.txt", "**/*.cmake")
check = "cmake-format --check {{ files }}"
fix = "cmake-format --in-place {{ files }}"
tests = new Mapping {
["check passes for formatted file"] = (new Test.TestMaker {
filename = "CMakeLists.txt"
}).checkPass("project(myproj)")
["fix formats file"] = (new Test.TestMaker {
filename = "CMakeLists.txt"
}).fixPass("project( myproj )", "project(myproj)")
}
}
### 🚀 Features - **(cmake_format)** init by [@matdibu](https://github.com/matdibu) in [#672](#672) - **(deadnix)** init by [@matdibu](https://github.com/matdibu) in [#670](#670) - **(hclfmt)** init by [@matdibu](https://github.com/matdibu) in [#675](#675) - **(nil)** init by [@matdibu](https://github.com/matdibu) in [#669](#669) - **(nixf_diagnose)** init by [@matdibu](https://github.com/matdibu) in [#671](#671) - **(ruff_format)** use `--quiet` by [@matdibu](https://github.com/matdibu) in [#667](#667) - **(tombi)** use `--quiet` by [@matdibu](https://github.com/matdibu) in [#676](#676) - add ty builtin by [@joonas](https://github.com/joonas) in [#566](#566) - add --pr shortcut flag for checking PR-changed files by [@jdx](https://github.com/jdx) in [#660](#660) - add tmpdir step test option by [@thejcannon](https://github.com/thejcannon) in [#663](#663) ### 🐛 Bug Fixes - **(bultins)** respect typos exclusions with --force-exclude by [@CallumKerson](https://github.com/CallumKerson) in [#659](#659) - **(docs)** escape angle brackets in --pr flag description by [@jdx](https://github.com/jdx) in [#666](#666) - **(docs)** use valid <br> tags instead of </br> in sea shanty by [@jdx](https://github.com/jdx) in [12e17f8](12e17f8) - **(go_fumpt)** comment out broken check by [@matdibu](https://github.com/matdibu) in [#668](#668) - **(yamllint)** enable strict mode by [@matdibu](https://github.com/matdibu) in [#673](#673) - respect ignore when recursing by [@thejcannon](https://github.com/thejcannon) in [#661](#661) - Deduplicate files in check-case-conflict to prevent false positives by [@safinn](https://github.com/safinn) in [#678](#678) - Fix building of nix flake wiwth the inclusion of git subomdules by [@jeffutter](https://github.com/jeffutter) in [#681](#681) ### 🛡️ Security - add tone calibration to release notes prompt by [@jdx](https://github.com/jdx) in [#679](#679) - add opengraph meta tags by [@jdx](https://github.com/jdx) in [#685](#685) ### 📦️ Dependency Updates - lock file maintenance by [@renovate[bot]](https://github.com/renovate[bot]) in [#658](#658) - update anthropics/claude-code-action digest to b113f49 by [@renovate[bot]](https://github.com/renovate[bot]) in [#684](#684) - update actions/checkout digest to de0fac2 by [@renovate[bot]](https://github.com/renovate[bot]) in [#683](#683) ### New Contributors - @jeffutter made their first contribution in [#681](#681) - @matdibu made their first contribution in [#673](#673) - @safinn made their first contribution in [#678](#678) - @CallumKerson made their first contribution in [#659](#659) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Mostly release bookkeeping, but the `Cargo.lock` refresh pulls in multiple dependency version changes that could affect build/runtime behavior. > > **Overview** > Updates the project release to **v1.36.0** by bumping version strings across `Cargo.toml`, `hk.usage.kdl`, generated CLI docs/metadata, and example PKL configuration URLs. > > Adds the `1.36.0` section to `CHANGELOG.md` and refreshes generated CLI documentation to include the `--pr` shortcut flag description for `check`/`fix`/`run`. > > Refreshes `Cargo.lock` with dependency updates (including several transitive additions/removals) and updates the Pkl error hint in `src/config.rs` to reference the new release URL. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 7925e85. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: mise-en-dev <123107610+mise-en-dev@users.noreply.github.com>
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [hk](https://github.com/jdx/hk) | minor | `1.35.0` → `1.36.0` | 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>jdx/hk (hk)</summary> ### [`v1.36.0`](https://github.com/jdx/hk/blob/HEAD/CHANGELOG.md#1360---2026-02-09) [Compare Source](jdx/hk@v1.35.0...v1.36.0) ##### 🚀 Features - **(cmake\_format)** init by [@​matdibu](https://github.com/matdibu) in [#​672](jdx/hk#672) - **(deadnix)** init by [@​matdibu](https://github.com/matdibu) in [#​670](jdx/hk#670) - **(hclfmt)** init by [@​matdibu](https://github.com/matdibu) in [#​675](jdx/hk#675) - **(nil)** init by [@​matdibu](https://github.com/matdibu) in [#​669](jdx/hk#669) - **(nixf\_diagnose)** init by [@​matdibu](https://github.com/matdibu) in [#​671](jdx/hk#671) - **(ruff\_format)** use `--quiet` by [@​matdibu](https://github.com/matdibu) in [#​667](jdx/hk#667) - **(tombi)** use `--quiet` by [@​matdibu](https://github.com/matdibu) in [#​676](jdx/hk#676) - add ty builtin by [@​joonas](https://github.com/joonas) in [#​566](jdx/hk#566) - add --pr shortcut flag for checking MR-changed files by [@​jdx](https://github.com/jdx) in [#​660](jdx/hk#660) - add tmpdir step test option by [@​thejcannon](https://github.com/thejcannon) in [#​663](jdx/hk#663) ##### 🐛 Bug Fixes - **(bultins)** respect typos exclusions with --force-exclude by [@​CallumKerson](https://github.com/CallumKerson) in [#​659](jdx/hk#659) - **(docs)** escape angle brackets in --pr flag description by [@​jdx](https://github.com/jdx) in [#​666](jdx/hk#666) - **(docs)** use valid <br> tags instead of </br> in sea shanty by [@​jdx](https://github.com/jdx) in [12e17f8](jdx/hk@12e17f8) - **(go\_fumpt)** comment out broken check by [@​matdibu](https://github.com/matdibu) in [#​668](jdx/hk#668) - **(yamllint)** enable strict mode by [@​matdibu](https://github.com/matdibu) in [#​673](jdx/hk#673) - respect ignore when recursing by [@​thejcannon](https://github.com/thejcannon) in [#​661](jdx/hk#661) - Deduplicate files in check-case-conflict to prevent false positives by [@​safinn](https://github.com/safinn) in [#​678](jdx/hk#678) - Fix building of nix flake wiwth the inclusion of git subomdules by [@​jeffutter](https://github.com/jeffutter) in [#​681](jdx/hk#681) ##### 🛡️ Security - add tone calibration to release notes prompt by [@​jdx](https://github.com/jdx) in [#​679](jdx/hk#679) - add opengraph meta tags by [@​jdx](https://github.com/jdx) in [#​685](jdx/hk#685) ##### 🔍 Other Changes - Use tmpdir for the tests by [@​thejcannon](https://github.com/thejcannon) in [#​677](jdx/hk#677) ##### 📦️ Dependency Updates - lock file maintenance by [@​renovate\[bot\]](https://github.com/renovate\[bot]) in [#​658](jdx/hk#658) - update anthropics/claude-code-action digest to [`b113f49`](jdx/hk@b113f49) by [@​renovate\[bot\]](https://github.com/renovate\[bot]) in [#​684](jdx/hk#684) - update actions/checkout digest to [`de0fac2`](jdx/hk@de0fac2) by [@​renovate\[bot\]](https://github.com/renovate\[bot]) in [#​683](jdx/hk#683) ##### New Contributors - [@​jeffutter](https://github.com/jeffutter) made their first contribution in [#​681](jdx/hk#681) - [@​matdibu](https://github.com/matdibu) made their first contribution in [#​673](jdx/hk#673) - [@​safinn](https://github.com/safinn) made their first contribution in [#​678](jdx/hk#678) - [@​CallumKerson](https://github.com/CallumKerson) made their first contribution in [#​659](jdx/hk#659) </details> --- ### Configuration 📅 **Schedule**: 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 [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi45Ni4wIiwidXBkYXRlZEluVmVyIjoiNDIuOTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Introduce https://github.com/cheshirekow/cmake_format as a CMake formatter