Skip to content

hls: check the same config files as the CLI - #1317

Open
LinkIsGrim wants to merge 1 commit into
mainfrom
hls-file-selection
Open

hls: check the same config files as the CLI#1317
LinkIsGrim wants to merge 1 commit into
mainfrom
hls-file-selection

Conversation

@LinkIsGrim

Copy link
Copy Markdown
Collaborator

The CLI checks every rapifiable file in an addon - cpp, rvmat, ext, sqm, bikb, bisurf - and honors the addon's rapify settings. The language server only ever looked at config.cpp, because that is what workspace.root().addons() collects, and ignored exclude and enabled entirely.

So an error in a .rvmat or .ext was reported by hemtt check and never shown in the editor, unless the file happened to be #included from a config.cpp. In the other direction, a file the project had deliberately excluded from rapifying was reported in the editor and not by the CLI.

hemtt_config::files now handles everything: can_rapify is moved out of the rapifier, and checkable, which walks an addon applying it along with rapify.enabled and the exclude globs. Both callers use it. The language server scans addons rather than collecting config.cpp paths, and skips checking with a warning if that scan fails rather than panicking.

Verified against a project built to trigger each case. L-C08 in a .rvmat now appears in both; an excluded .rvmat appears in neither; enabled = false skips the addon's configs in both. On ACE3 the CLI is unchanged - 389 configs and 2746 sqf files, with the same diagnostics as before.

hemtt-config gains glob, thiserror and tracing. glob is not a workspace dependency yet, so it is pinned to the version bin already uses.

The CLI checks every rapifiable file in an addon - `cpp`, `rvmat`, `ext`,
`sqm`, `bikb`, `bisurf` - and honours the addon's rapify settings. The
language server only ever looked at `config.cpp`, because that is what
`workspace.root().addons()` collects, and ignored `exclude` and `enabled`
entirely.

So an error in a `.rvmat` or `.ext` was reported by `hemtt check` and never
shown in the editor, unless the file happened to be `#include`d from a
`config.cpp`. In the other direction, a file the project had deliberately
excluded from rapifying was reported in the editor and not by the CLI.

`hemtt_config::files` now owns both halves of that decision: `can_rapify`,
moved out of the rapifier, and `checkable`, which walks an addon applying it
along with `rapify.enabled` and the `exclude` globs. Both callers use it.
The language server scans addons rather than collecting `config.cpp` paths,
and skips checking with a warning if that scan fails rather than panicking.

Verified against a project built to trigger each case. `L-C08` in a
`.rvmat` now appears in both; an excluded `.rvmat` appears in neither;
`enabled = false` skips the addon's configs in both. On ACE3 the CLI is
unchanged - 389 configs and 2746 sqf files, with the same diagnostics as
before.

`hemtt-config` gains `glob`, `thiserror` and `tracing`. `glob` is not a
workspace dependency yet, so it is pinned to the version `bin` already uses.
@LinkIsGrim LinkIsGrim self-assigned this Aug 26, 2026
@codecov

codecov Bot commented Aug 26, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 90.00000% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.0%. Comparing base (3cc53f9) to head (1e39d78).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
libs/config/src/files.rs 89.1% 5 Missing ⚠️
Additional details and impacted files
Files with missing lines Coverage Δ
bin/src/error.rs 0.0% <ø> (ø)
bin/src/modules/rapifier.rs 74.1% <100.0%> (-2.5%) ⬇️
libs/config/src/lib.rs 87.8% <ø> (ø)
libs/config/src/files.rs 89.1% <89.1%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant