blockwatch-cli 0.15.0__tar.gz → 0.16.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/CHANGELOG.md +45 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/Cargo.lock +1 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/Cargo.toml +1 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/PKG-INFO +1 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/README.md +5 -4
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/blockwatch.toml +1 -1
- blockwatch_cli-0.16.1/clippy.toml +11 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/ci.md +2 -2
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/cli.md +13 -13
- blockwatch_cli-0.16.1/docs/symbols.md +482 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/check-ai.md +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/check-lua.md +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/keep-sorted.md +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/line-count.md +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/same-as.md +46 -26
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/setup.py +1 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/blocks.rs +37 -3
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/config.rs +11 -5
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/fs.rs +5 -1
- blockwatch_cli-0.16.1/src/language_parsers/c.rs +1179 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/cpp.rs +4 -2
- blockwatch_cli-0.16.1/src/language_parsers/go.rs +635 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/javascript.rs +9 -2
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/json.rs +2 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/markdown.rs +6 -5
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/mdx.rs +5 -4
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/mod.rs +63 -12
- blockwatch_cli-0.16.1/src/language_parsers/python.rs +635 -0
- blockwatch_cli-0.16.1/src/language_parsers/rust.rs +517 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/starlark.rs +9 -2
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/toml.rs +6 -4
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/tsx.rs +9 -2
- blockwatch_cli-0.16.1/src/language_parsers/typescript.rs +686 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/yaml.rs +6 -4
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/lib.rs +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/path_arguments.rs +15 -3
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/paths_glob.rs +66 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/scan.rs +6 -5
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/settings.rs +17 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/skill.md +103 -25
- blockwatch_cli-0.16.1/src/symbols/code.rs +716 -0
- blockwatch_cli-0.15.0/src/symbols.rs → blockwatch_cli-0.16.1/src/symbols/mod.rs +192 -117
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/check_ai.rs +27 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/check_lua.rs +33 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/keep_sorted.rs +37 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/line_count.rs +30 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/mod.rs +80 -10
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/same_as.rs +313 -59
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/virtual_blocks.rs +11 -6
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/explain.rs +13 -5
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/general.rs +2 -2
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/same_as.rs +35 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/symbol_references.rs +70 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/pattern.py +2 -2
- blockwatch_cli-0.16.1/tests/testdata/check_lua/pattern_many_matches.py +6 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/pattern_no_match.py +1 -1
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/custom_file_extension.python +1 -1
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/bzl_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/bzl_target.bzl +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/c_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/c_target.c +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/cpp_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/cpp_target.cpp +1 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/escapes_source.rs +4 -4
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/filter_source.rs +2 -2
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/go_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/go_target.go +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/h_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/h_target.h +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/js_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/js_target.js +1 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/json_source.rs +2 -2
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/jsonc_source.rs +2 -2
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/markdown_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/md_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/mdx_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/mixed_list_source.rs +6 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/py_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/py_target.py +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/rs_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/rs_target.rs +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/toml_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/ts_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/ts_target.ts +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/tsx_source.rs +3 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/tsx_target.tsx +1 -0
- blockwatch_cli-0.16.1/tests/testdata/symbol_references/yaml_source.rs +3 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/yml_source.rs +2 -2
- blockwatch_cli-0.15.0/clippy.toml +0 -5
- blockwatch_cli-0.15.0/docs/symbols.md +0 -238
- blockwatch_cli-0.15.0/src/language_parsers/c.rs +0 -85
- blockwatch_cli-0.15.0/src/language_parsers/go.rs +0 -239
- blockwatch_cli-0.15.0/src/language_parsers/python.rs +0 -79
- blockwatch_cli-0.15.0/src/language_parsers/rust.rs +0 -126
- blockwatch_cli-0.15.0/src/language_parsers/typescript.rs +0 -117
- blockwatch_cli-0.15.0/tests/testdata/check_lua/pattern_many_matches.py +0 -6
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/markdown_source.rs +0 -3
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/md_source.rs +0 -3
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/mdx_source.rs +0 -3
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/mixed_list_source.rs +0 -6
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/toml_source.rs +0 -3
- blockwatch_cli-0.15.0/tests/testdata/symbol_references/yaml_source.rs +0 -3
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.agents/.claude-plugin/plugin.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.agents/skills/blockwatch/SKILL.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.claude-plugin/marketplace.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/dependabot.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/blockwatch.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/codeql.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/markdownlint.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/pypi.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/release.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/rust.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.github/workflows/trusted-checks.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.gitignore +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.markdownlint-cli2.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.pre-commit-config.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/.pre-commit-hooks.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/AGENTS.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/CLAUDE.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/LICENSE +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/SECURITY.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/codecov.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/demo.gif +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/dist-workspace.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/agents.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/README.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/affects.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/keep-unique.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/docs/validators/line-pattern.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/pypi/pyproject.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/pyproject.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/release.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/scripts/check_language_count.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/scripts/check_latest_gpt_nano_model.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/block_parser.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/cli.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/diff_parser.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/explain.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/flags.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/bash.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/c_sharp.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/cmake.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/css.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/dart.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/dockerfile.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/elixir.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/graphql.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/groovy.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/hcl.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/html.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/java.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/json.scm +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/kotlin.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/lean.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/lua.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/makefile.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/nix.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/ocaml.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/php.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/proto.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/ruby.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/scala.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/sql.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/swift.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/language_parsers/xml.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/main.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/repo_path.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/report.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/sarif.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/symbol_path.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/tag_parser.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/target_reference.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/affects.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/keep_unique.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/validators/line_pattern.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/src/violation_address.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/affects.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/check_ai.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/check_lua.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/common/empty.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/common/mod.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/config.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/encoding.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/keep_sorted.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/keep_unique.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/line_count.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/line_pattern.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/list.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/path_arguments.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/repository_root.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/sarif.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/skill.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/suppressions.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/cross_file_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/cross_file_target.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/dangling.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/missing_symbol.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/more_added_than_deleted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/multiline_tag_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/multiline_tag_target.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/nested_mapping_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/nested_mapping_target.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/sibling.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/symbol_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/symbol_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/table_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/table_target.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/tag_and_content_source.ts +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/tag_and_content_target.ts +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/whole_file_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/affects/whole_file_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_ai/two_blocks.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/affects.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/affects.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/affects_drift.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/blocking_io.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/blocking_io.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/echo.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/fail.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/mode.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/os.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/pathfmt/report_path.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/pathfmt/source.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/success.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/check_lua/success_and_failure.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/config/glob_target/config.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/config/glob_target/package.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/config/glob_target/plugins/blue/package.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/config/glob_target/plugins/green/package.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/config/glob_target/plugins/red/package.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/explain/a.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/explain/check.lua +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/block_selection.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/custom_file_extension.javascript +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/disable_enable.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/paths/invalid.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/paths/subdir/nested_invalid.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/paths/valid.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/general/severity.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/hidden/.github/workflows/ci.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/keep_sorted/orderings.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/keep_unique/basic_and_pattern.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/line_count/equality_and_greater_than.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/line_pattern/forbidden_text.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/line_pattern/hex_and_word_patterns.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/list/.hg/.gitkeep +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/list/a.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/list/b.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/positions/unicode_columns.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/package.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/paths/alpha/item.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/paths/beta/item.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/paths_and_block_source.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/paths_source.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/sibling.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/split_table_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/split_table_target.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/symbol_mismatch_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/symbol_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/target.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/whole_file_mismatch_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/whole_file_source.rs +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/same_as/whole_file_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/sarif/advisory.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/sarif/clean.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/sarif/sorted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/sarif/unnamed.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg_gone_a.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg_gone_b.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg_lowercase_trailer.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg_malformed.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/commit_msg_with_noise.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/dangling.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/sorted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/symbol.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/symbol_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/two_rules.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/suppressions/unnamed.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/escapes_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/filter_target.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/json_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/jsonc_target.jsonc +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/markdown_target.markdown +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/md_target.md +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/mdx_target.mdx +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/mixed_list_target.json +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/toml_target.toml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/yaml_target.yaml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/symbol_references/yml_target.yml +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/affects/pair.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/clean/counted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/clean/noop.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/clean/notes.txt +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/clean/sorted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/diff/two_blocks.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/failing/unsorted.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/testdata/verbosity/mixed/both_kinds.py +0 -0
- {blockwatch_cli-0.15.0 → blockwatch_cli-0.16.1}/tests/verbosity.rs +0 -0
|
@@ -12,6 +12,51 @@ Releases up to and including v0.3.11 predate this file. Their notes live on the
|
|
|
12
12
|
|
|
13
13
|
## [Unreleased] - ReleaseDate
|
|
14
14
|
|
|
15
|
+
## [0.16.1] - 2026-10-28
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Symbols in Go, C, C++, Python, Starlark, Rust, TypeScript and JavaScript files. `consts.go#/MaxPorts` points at a
|
|
20
|
+
top-level constant, variable, type or function, and `limits.h#/MAX_PORTS` at a macro. A value is the initializer as
|
|
21
|
+
written, such as `20 * 1024 * 1024`, so `same-as` can compare it with a constant in another file without a
|
|
22
|
+
`target-pattern`. A syntax error stops the run only for the names near it. See [Code files](docs/symbols.md#code-files),
|
|
23
|
+
[Go](docs/symbols.md#go), [C and C++](docs/symbols.md#c-and-c),
|
|
24
|
+
[Python and Starlark](docs/symbols.md#python-and-starlark), [Rust](docs/symbols.md#rust) and
|
|
25
|
+
[TypeScript and JavaScript](docs/symbols.md#typescript-and-javascript).
|
|
26
|
+
|
|
27
|
+
## [0.16.0] - 2026-10-24
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- Without `same-as-pattern`, `same-as` compares each line that isn't blank as one value. Before, the whole block was
|
|
32
|
+
one value, so `same-as-mode` and `same-as-format` didn't work on a block of several lines. For example,
|
|
33
|
+
`same-as-mode="single"` passed with two lines, `subset` failed on a line that the target had, and `numeric` reported
|
|
34
|
+
that `1` and `2` together are not a number ([#179](https://github.com/mennanov/blockwatch/issues/179)).
|
|
35
|
+
- Without `same-as-mode`, a block without `same-as-pattern` compares in `sequence` mode. So it still fails when its
|
|
36
|
+
lines differ from the target's or come in another order. A block with a pattern still compares in `set` mode.
|
|
37
|
+
- A block without `same-as-pattern` now fails when its target's pattern finds a value more than once, or in another
|
|
38
|
+
order: `["1.2.3"] != ["1.2.3", "1.2.3"]`. Before, the default `set` mode ignored this. To keep the old result, add
|
|
39
|
+
`same-as-mode="set"`, or `same-as-mode="subset"` when the target may hold other values too.
|
|
40
|
+
- `same-as` now fails on two empty blocks, as it does on a pattern that matches nothing. The message for both is
|
|
41
|
+
`this block or its target has no values to compare`.
|
|
42
|
+
- `same-as-paths` no longer needs `same-as-pattern`. Without one, each line of the block must be a path, in sorted
|
|
43
|
+
order.
|
|
44
|
+
- An attribute that changes how a validator works now stops the run on a block without the validator's main
|
|
45
|
+
attribute. Before, it did nothing there. For example, `same-as-mode="sequence"` on a target let values in another
|
|
46
|
+
order pass. The attributes are:
|
|
47
|
+
- `same-as-mode` and `same-as-format`, without `same-as` or `same-as-paths`;
|
|
48
|
+
- `same-as-pattern`, without `same-as`, `same-as-paths` or `name`, because only a block with a name can be a target;
|
|
49
|
+
- `keep-sorted-pattern` and `keep-sorted-format`, without `keep-sorted`;
|
|
50
|
+
- `line-count-pattern`, without `line-count`;
|
|
51
|
+
- `check-ai-pattern`, without `check-ai`;
|
|
52
|
+
- `check-lua-pattern` and `check-lua-timeout`, without `check-lua`.
|
|
53
|
+
|
|
54
|
+
### Fixed
|
|
55
|
+
|
|
56
|
+
- An empty alternative in braces now matches, so `{,sub/}a.yml` matches both `a.yml` and `sub/a.yml`. Before, it
|
|
57
|
+
matched only `sub/a.yml`, with no error. This was true of every glob: a `[[block]]` target, `same-as-paths`, the
|
|
58
|
+
`ignore` setting and `--ignore`, and a path argument ([#177](https://github.com/mennanov/blockwatch/issues/177)).
|
|
59
|
+
|
|
15
60
|
## [0.15.0] - 2026-10-21
|
|
16
61
|
|
|
17
62
|
### Changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blockwatch-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.1
|
|
4
4
|
Summary: Language agnostic linter that keeps your code and documentation in sync and valid
|
|
5
5
|
Keywords: linter,sync,drift,comments,agents
|
|
6
6
|
Home-Page: https://github.com/mennanov/blockwatch
|
|
@@ -88,9 +88,10 @@ Two validators work across files:
|
|
|
88
88
|
- `affects` fails when a diff touches a block without also changing what it points to.
|
|
89
89
|
- `same-as` fails when a block and its target hold different values. It needs no diff.
|
|
90
90
|
|
|
91
|
-
Both can point to a block, a whole file, a specific value in a file like `package.json#/version`,
|
|
92
|
-
Markdown file
|
|
93
|
-
you'd otherwise have to
|
|
91
|
+
Both can point to a block, a whole file, a specific value in a file like `package.json#/version`, a section of a
|
|
92
|
+
Markdown file, or a constant in a Go, C, C++, Python, Rust, TypeScript or JavaScript file (see
|
|
93
|
+
[Symbols](docs/symbols.md)). The other validators check a single block on their own: the things you'd otherwise have to
|
|
94
|
+
nitpick in code review.
|
|
94
95
|
|
|
95
96
|
<!-- <block name="available-validators"
|
|
96
97
|
same-as="src/validators/mod.rs:validator-registry, docs/validators/README.md:validators-index"
|
|
@@ -218,7 +219,7 @@ exclusions, and custom extension mappings.
|
|
|
218
219
|
|
|
219
220
|
```yaml
|
|
220
221
|
- repo: https://github.com/mennanov/blockwatch
|
|
221
|
-
rev: v0.
|
|
222
|
+
rev: v0.16.1 # Use latest release
|
|
222
223
|
hooks:
|
|
223
224
|
- id: blockwatch
|
|
224
225
|
```
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# The integration tests run inside this repository, so a run would read its blockwatch.toml, which
|
|
2
|
+
# skips tests/testdata.
|
|
3
|
+
disallowed-macros = [
|
|
4
|
+
{ path = "assert_cmd::cargo_bin_cmd", reason = "use common::cargo_bin_cmd!, which passes an empty config" },
|
|
5
|
+
]
|
|
6
|
+
# globset drops an empty alternative in braces by default, so `{,sub/}a.yml` would not match
|
|
7
|
+
# `a.yml`.
|
|
8
|
+
disallowed-methods = [
|
|
9
|
+
{ path = "globset::Glob::new", reason = "use paths_glob::glob_builder, which keeps an empty alternative" },
|
|
10
|
+
{ path = "globset::GlobBuilder::new", reason = "use paths_glob::glob_builder, which keeps an empty alternative" },
|
|
11
|
+
]
|
|
@@ -19,7 +19,7 @@ To use [pre-commit](https://pre-commit.com), add the hook to `.pre-commit-config
|
|
|
19
19
|
|
|
20
20
|
```yaml
|
|
21
21
|
- repo: https://github.com/mennanov/blockwatch
|
|
22
|
-
rev: v0.
|
|
22
|
+
rev: v0.16.1 # Use latest release
|
|
23
23
|
hooks:
|
|
24
24
|
- id: blockwatch
|
|
25
25
|
```
|
|
@@ -59,7 +59,7 @@ The `blockwatch` hook runs before the commit message exists, so it cannot see a
|
|
|
59
59
|
|
|
60
60
|
```yaml
|
|
61
61
|
- repo: https://github.com/mennanov/blockwatch
|
|
62
|
-
rev: v0.
|
|
62
|
+
rev: v0.16.1 # Use latest release
|
|
63
63
|
hooks:
|
|
64
64
|
- id: blockwatch-commit-msg
|
|
65
65
|
```
|
|
@@ -557,15 +557,15 @@ Nothing else about the run changes: the same violations are found, and the exit
|
|
|
557
557
|
"tool": {
|
|
558
558
|
"driver": {
|
|
559
559
|
"name": "blockwatch",
|
|
560
|
-
"version": "0.
|
|
561
|
-
"semanticVersion": "0.
|
|
560
|
+
"version": "0.16.1",
|
|
561
|
+
"semanticVersion": "0.16.1",
|
|
562
562
|
"informationUri": "https://github.com/mennanov/blockwatch",
|
|
563
563
|
"rules": [
|
|
564
564
|
{
|
|
565
565
|
"id": "keep-sorted",
|
|
566
566
|
"name": "keep-sorted",
|
|
567
567
|
"shortDescription": { "text": "Requires the lines of a block to stay in order." },
|
|
568
|
-
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.
|
|
568
|
+
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.16.1/docs/validators/keep-sorted.md"
|
|
569
569
|
}
|
|
570
570
|
]
|
|
571
571
|
}
|
|
@@ -790,16 +790,16 @@ A trace stops where its validator stops, such as at the first line out of order.
|
|
|
790
790
|
file, and `text` is that line trimmed, as the validator compares it. A key that holds what a violation reports has the
|
|
791
791
|
name the violation's `data` gives it, such as `reason`.
|
|
792
792
|
|
|
793
|
-
| Validator | What it shows
|
|
794
|
-
|
|
795
|
-
| `same-as` | `records`: each match of `same-as-pattern` in the block, with its `line`, the text the regex matched (`match`), and each named group after `same-as-format` (`groups`). `targets`: the `records` of each target, and the `reason` of its violation, or `null` when the two agree. `paths`: with `same-as-paths`, the `glob`, the paths it `matched`, their `records` and the `reason`. |
|
|
796
|
-
| `keep-sorted` | `lines`: each line read, with the `value` it compares, or `null` when `keep-sorted-pattern` skips the line. `format` and `order`.
|
|
797
|
-
| `keep-unique` | `lines`, as for `keep-sorted`. A repeated value has `duplicate_of`: the line where it first appeared.
|
|
798
|
-
| `line-pattern` | `lines`: each line read, with the text `line-pattern` matched (`match`). A line that fails has `fails`: the check it fails. `forbidden_match` is the text `line-pattern-forbidden` found.
|
|
799
|
-
| `line-count` | `lines`, as for `keep-sorted`. A line counts when its `value` isn't `null`. The number of lines counted (`actual`), and the rule (`op` and `expected`).
|
|
800
|
-
| `affects` | Whether the diff changed the block (`block_changed`). For each target: whether the diff `changed` it, or the `reason` it doesn't resolve.
|
|
801
|
-
| `check-lua` | The `content` and the `affects` the script got, and the message it returned (`lua_error`), or `null` when it passed. `affects` is `ctx.affects` without the content of each target.
|
|
802
|
-
| `check-ai` | The `model`, the `prompt` sent and the `response`. Both are `null` when `check-ai-pattern` matched nothing, so no request was sent.
|
|
793
|
+
| Validator | What it shows |
|
|
794
|
+
|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
795
|
+
| `same-as` | `records`: each match of `same-as-pattern` in the block, or each line without a pattern, with its `line`, the text the regex matched (`match`), and each named group after `same-as-format` (`groups`). `mode`: the `same-as-mode` it compared with. `targets`: the `records` of each target, and the `reason` of its violation, or `null` when the two agree. `paths`: with `same-as-paths`, the `glob`, the paths it `matched`, their `records` and the `reason`. |
|
|
796
|
+
| `keep-sorted` | `lines`: each line read, with the `value` it compares, or `null` when `keep-sorted-pattern` skips the line. `format` and `order`. |
|
|
797
|
+
| `keep-unique` | `lines`, as for `keep-sorted`. A repeated value has `duplicate_of`: the line where it first appeared. |
|
|
798
|
+
| `line-pattern` | `lines`: each line read, with the text `line-pattern` matched (`match`). A line that fails has `fails`: the check it fails. `forbidden_match` is the text `line-pattern-forbidden` found. |
|
|
799
|
+
| `line-count` | `lines`, as for `keep-sorted`. A line counts when its `value` isn't `null`. The number of lines counted (`actual`), and the rule (`op` and `expected`). |
|
|
800
|
+
| `affects` | Whether the diff changed the block (`block_changed`). For each target: whether the diff `changed` it, or the `reason` it doesn't resolve. |
|
|
801
|
+
| `check-lua` | The `content` and the `affects` the script got, and the message it returned (`lua_error`), or `null` when it passed. `affects` is `ctx.affects` without the content of each target. |
|
|
802
|
+
| `check-ai` | The `model`, the `prompt` sent and the `response`. Both are `null` when `check-ai-pattern` matched nothing, so no request was sent. |
|
|
803
803
|
|
|
804
804
|
## Run Reports
|
|
805
805
|
|