blockwatch-cli 0.16.6__tar.gz → 0.16.8__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.16.6 → blockwatch_cli-0.16.8}/.markdownlint-cli2.yaml +4 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/AGENTS.md +7 -5
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/CHANGELOG.md +38 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/CLAUDE.md +7 -5
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/Cargo.lock +51 -16
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/Cargo.toml +3 -2
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/PKG-INFO +1 -1
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/README.md +4 -4
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/blockwatch.toml +1 -1
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/ci.md +2 -2
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/cli.md +3 -3
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/symbols.md +282 -7
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/setup.py +1 -1
- blockwatch_cli-0.16.8/src/language_parsers/bash.rs +553 -0
- blockwatch_cli-0.16.8/src/language_parsers/makefile.rs +1006 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/mod.rs +16 -3
- blockwatch_cli-0.16.8/src/language_parsers/php.rs +1382 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/python.rs +91 -13
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/skill.md +68 -6
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/symbol_references.rs +28 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/Makefile +1 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/makefile_source.rs +3 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/php_source.rs +3 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/php_target.php +7 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/phtml_source.rs +3 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/phtml_target.phtml +4 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/sh_source.rs +3 -0
- blockwatch_cli-0.16.8/tests/testdata/symbol_references/sh_target.sh +2 -0
- blockwatch_cli-0.16.6/src/language_parsers/bash.rs +0 -94
- blockwatch_cli-0.16.6/src/language_parsers/makefile.rs +0 -61
- blockwatch_cli-0.16.6/src/language_parsers/php.rs +0 -284
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.agents/.claude-plugin/plugin.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.agents/skills/blockwatch/SKILL.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.claude-plugin/marketplace.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/dependabot.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/blockwatch.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/codeql.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/markdownlint.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/pypi.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/release.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/rust.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.github/workflows/trusted-checks.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.gitignore +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.pre-commit-config.yaml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/.pre-commit-hooks.yaml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/LICENSE +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/SECURITY.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/clippy.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/codecov.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/demo.gif +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/dist-workspace.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/agents.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/README.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/affects.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/check-ai.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/check-lua.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/keep-sorted.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/keep-unique.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/line-count.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/line-pattern.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/docs/validators/same-as.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/pypi/pyproject.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/pyproject.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/release.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/scripts/check_language_count.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/scripts/check_latest_gpt_nano_model.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/block_parser.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/blocks.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/cli.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/config.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/diff_parser.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/explain.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/flags.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/fs.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/c.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/c_sharp.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/cmake.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/cpp.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/css.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/dart.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/dockerfile.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/elixir.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/go.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/graphql.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/groovy.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/hcl.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/html.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/java.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/javascript.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/json.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/kotlin.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/lean.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/lua.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/markdown.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/mdx.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/nix.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/ocaml.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/proto.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/ruby.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/rust.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/scala.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/sql.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/starlark.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/swift.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/toml.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/tsx.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/typescript.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/xml.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/language_parsers/yaml.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/lib.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/main.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/path_arguments.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/paths_glob.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/repo_path.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/report.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/sarif.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/scan.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/settings.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/symbol_path.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/symbols/code.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/symbols/mod.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/tag_parser.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/target_reference.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/affects.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/check_ai.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/check_lua.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/keep_sorted.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/keep_unique.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/line_count.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/line_pattern.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/mod.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/validators/same_as.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/violation_address.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/src/virtual_blocks.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/affects.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/check_ai.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/check_lua.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/common/empty.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/common/mod.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/config.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/encoding.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/explain.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/general.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/keep_sorted.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/keep_unique.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/line_count.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/line_pattern.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/list.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/path_arguments.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/repository_root.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/same_as.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/sarif.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/skill.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/suppressions.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/cross_file_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/cross_file_target.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/dangling.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/missing_symbol.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/more_added_than_deleted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/multiline_tag_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/multiline_tag_target.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/nested_mapping_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/nested_mapping_target.yaml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/sibling.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/symbol_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/symbol_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/table_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/table_target.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/tag_and_content_source.ts +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/tag_and_content_target.ts +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/whole_file_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/affects/whole_file_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_ai/two_blocks.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/affects.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/affects.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/affects_drift.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/blocking_io.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/blocking_io.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/echo.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/fail.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/mode.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/os.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/pathfmt/report_path.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/pathfmt/source.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/pattern.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/pattern_many_matches.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/pattern_no_match.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/success.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/check_lua/success_and_failure.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/config/glob_target/config.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/config/glob_target/package.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/config/glob_target/plugins/blue/package.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/config/glob_target/plugins/green/package.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/config/glob_target/plugins/red/package.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/explain/a.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/explain/check.lua +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/block_selection.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/custom_file_extension.javascript +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/custom_file_extension.python +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/disable_enable.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/paths/invalid.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/paths/subdir/nested_invalid.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/paths/valid.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/general/severity.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/hidden/.github/workflows/ci.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/keep_sorted/orderings.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/keep_unique/basic_and_pattern.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/line_count/equality_and_greater_than.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/line_pattern/forbidden_text.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/line_pattern/hex_and_word_patterns.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/list/.hg/.gitkeep +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/list/a.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/list/b.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/positions/unicode_columns.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/package.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/paths/alpha/item.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/paths/beta/item.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/paths_and_block_source.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/paths_source.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/sibling.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/split_table_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/split_table_target.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/symbol_mismatch_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/symbol_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/target.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/whole_file_mismatch_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/whole_file_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/same_as/whole_file_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/sarif/advisory.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/sarif/clean.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/sarif/sorted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/sarif/unnamed.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg_gone_a.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg_gone_b.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg_lowercase_trailer.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg_malformed.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/commit_msg_with_noise.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/dangling.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/sorted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/symbol.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/symbol_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/two_rules.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/suppressions/unnamed.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/bzl_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/bzl_target.bzl +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/c_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/c_target.c +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/cpp_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/cpp_target.cpp +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/cs_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/cs_target.cs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/csproj_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/csproj_target.csproj +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/escapes_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/escapes_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/filter_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/filter_target.yaml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/go_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/go_target.go +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/h_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/h_target.h +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/hcl_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/hcl_target.hcl +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/java_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/java_target.java +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/js_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/js_target.js +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/json_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/json_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/jsonc_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/jsonc_target.jsonc +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/kt_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/kt_target.kt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/kts_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/kts_target.kts +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/markdown_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/markdown_target.markdown +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/md_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/md_target.md +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/mdx_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/mdx_target.mdx +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/mixed_list_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/mixed_list_target.json +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/nomad_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/nomad_target.nomad +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/proto_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/proto_target.proto +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/py_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/py_target.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/rs_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/rs_target.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/swift_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/swift_target.swift +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tf_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tf_target.tf +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tfvars_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tfvars_target.tfvars +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tofu_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tofu_target.tofu +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/toml_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/toml_target.toml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/ts_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/ts_target.ts +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tsx_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/tsx_target.tsx +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/xml_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/xml_target.xml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/yaml_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/yaml_target.yaml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/yml_source.rs +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/symbol_references/yml_target.yml +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/affects/pair.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/clean/counted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/clean/noop.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/clean/notes.txt +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/clean/sorted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/diff/two_blocks.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/failing/unsorted.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/testdata/verbosity/mixed/both_kinds.py +0 -0
- {blockwatch_cli-0.16.6 → blockwatch_cli-0.16.8}/tests/verbosity.rs +0 -0
|
@@ -21,6 +21,10 @@ config:
|
|
|
21
21
|
# A shell command or a table row cannot be wrapped without changing what it means.
|
|
22
22
|
code_blocks: false
|
|
23
23
|
tables: false
|
|
24
|
+
MD010:
|
|
25
|
+
# A recipe line in a Makefile must start with a tab, so an example with spaces would not work.
|
|
26
|
+
ignore_code_languages:
|
|
27
|
+
- make
|
|
24
28
|
MD024:
|
|
25
29
|
# CHANGELOG.md follows Keep a Changelog, where every release repeats "Added" and "Fixed".
|
|
26
30
|
# Requiring uniqueness only among headings sharing a parent still catches a real duplicate.
|
|
@@ -226,11 +226,11 @@ The main modules:
|
|
|
226
226
|
(`b/src/main.rs`), a path found in the walk and a `file:name` attribute all become a `RepoPath`. So the same file is
|
|
227
227
|
always the same map key.
|
|
228
228
|
- `src/language_parsers/` — one parser for each language, most of them a tree-sitter grammar. Markdown and MDX use
|
|
229
|
-
the `markdown` crate, and Lean has its own scanner. Each language has
|
|
230
|
-
`LanguageParser`, which knows which syntax nodes are comments. `src/block_parser.rs`
|
|
231
|
-
blocks. `language_parsers()` in `language_parsers/mod.rs` returns `LanguageParsers`: the
|
|
232
|
-
Its `parser_for` picks the parser of a file, using the settings' extension mappings too.
|
|
233
|
-
module here and register it in that function.**
|
|
229
|
+
the `markdown` crate, Makefile uses the `makefile-lossless` crate, and Lean has its own scanner. Each language has
|
|
230
|
+
a `parser()` that returns a `LanguageParser`, which knows which syntax nodes are comments. `src/block_parser.rs`
|
|
231
|
+
turns those comments into blocks. `language_parsers()` in `language_parsers/mod.rs` returns `LanguageParsers`: the
|
|
232
|
+
parser of each extension. Its `parser_for` picks the parser of a file, using the settings' extension mappings too.
|
|
233
|
+
**To add a language, add a module here and register it in that function.**
|
|
234
234
|
|
|
235
235
|
Some languages also have symbols. Such a language has a `SymbolsParser`, which its `parser()` passes to
|
|
236
236
|
`.with_symbols(...)`:
|
|
@@ -239,6 +239,8 @@ The main modules:
|
|
|
239
239
|
- TOML finds its symbols with `toml_edit`. What a TOML key means depends on the order of the headers, not on how the
|
|
240
240
|
syntax tree is nested.
|
|
241
241
|
- Markdown finds its sections with the `markdown` crate, the same parser that finds its comments.
|
|
242
|
+
- Makefile finds its symbols with `makefile-lossless`, the same crate that finds its comments. The crate is pinned to
|
|
243
|
+
one version. Its known bugs are listed in `docs/symbols.md`, not worked around.
|
|
242
244
|
|
|
243
245
|
Each language's tests list every symbol it finds. When you give a language symbols, also document its paths in
|
|
244
246
|
`docs/symbols.md` and in the "Symbols" section of the skill, `src/skill.md`. A test in `language_parsers/mod.rs` and the
|
|
@@ -12,6 +12,44 @@ 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.8] - 2026-11-05
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Symbols in Makefiles (`Makefile`, `GNUmakefile`, `makefile`, `.mk` and `.mak`). `Makefile#/GO_VERSION` points at
|
|
20
|
+
the value of a variable, and `#/build` at the rule of a target. A value is read as GNU make reads it, without its
|
|
21
|
+
inline comment, and is never expanded. See [Makefile](docs/symbols.md#makefile).
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- Some block tags in Makefile comments were not found, such as one after an assignment, as in `VERSION := 1.2 # ...`,
|
|
26
|
+
or one below a `(` that is not part of a reference. Now Makefiles are read with the `makefile-lossless` crate. A
|
|
27
|
+
comment that ends in `\` takes in the next line. A `#` after a rule's `;`, after a backslash, as in `\#`, or inside
|
|
28
|
+
`$(...)` doesn't start a comment.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- A block tag in a Makefile is now found on a recipe line whose first character after the tab is `#`, and after any
|
|
33
|
+
`#` in a `define` body. Make reads no comment there, so these tags were not found before. See the known limits in
|
|
34
|
+
[Makefile](docs/symbols.md#makefile).
|
|
35
|
+
|
|
36
|
+
## [0.16.7] - 2026-11-04
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- Symbols in PHP files (`.php` and `.phtml`). `Invoice.php#/Invoice/STATUS_PAID` points at a class constant,
|
|
41
|
+
`#/Invoice/$perPage` at a property, and `version.php#/$wp_version` at a top-level variable. A
|
|
42
|
+
`define('NAME', value)` call is a symbol too, at `#/NAME`. The namespace is not part of a path. See
|
|
43
|
+
[PHP](docs/symbols.md#php).
|
|
44
|
+
- Symbols in shell scripts (`.sh`, `.bash`, `.bashrc`, `.bash_profile` and `.envrc`). `install.sh#/GO_VERSION`
|
|
45
|
+
points at the value of a variable, and `#/log` at a function. A name counts when it is set outside functions, loops
|
|
46
|
+
and subshells. zsh files have no symbols. See [Shell](docs/symbols.md#shell).
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- A Python or Starlark string with an escape that Python rejects, such as `"\x4"` or `"\N"`, gave its text as the
|
|
51
|
+
value. Now a path to it stops the run, as a path to a string with a `\N{...}` escape does.
|
|
52
|
+
|
|
15
53
|
## [0.16.6] - 2026-11-04
|
|
16
54
|
|
|
17
55
|
### Added
|
|
@@ -226,11 +226,11 @@ The main modules:
|
|
|
226
226
|
(`b/src/main.rs`), a path found in the walk and a `file:name` attribute all become a `RepoPath`. So the same file is
|
|
227
227
|
always the same map key.
|
|
228
228
|
- `src/language_parsers/` — one parser for each language, most of them a tree-sitter grammar. Markdown and MDX use
|
|
229
|
-
the `markdown` crate, and Lean has its own scanner. Each language has
|
|
230
|
-
`LanguageParser`, which knows which syntax nodes are comments. `src/block_parser.rs`
|
|
231
|
-
blocks. `language_parsers()` in `language_parsers/mod.rs` returns `LanguageParsers`: the
|
|
232
|
-
Its `parser_for` picks the parser of a file, using the settings' extension mappings too.
|
|
233
|
-
module here and register it in that function.**
|
|
229
|
+
the `markdown` crate, Makefile uses the `makefile-lossless` crate, and Lean has its own scanner. Each language has
|
|
230
|
+
a `parser()` that returns a `LanguageParser`, which knows which syntax nodes are comments. `src/block_parser.rs`
|
|
231
|
+
turns those comments into blocks. `language_parsers()` in `language_parsers/mod.rs` returns `LanguageParsers`: the
|
|
232
|
+
parser of each extension. Its `parser_for` picks the parser of a file, using the settings' extension mappings too.
|
|
233
|
+
**To add a language, add a module here and register it in that function.**
|
|
234
234
|
|
|
235
235
|
Some languages also have symbols. Such a language has a `SymbolsParser`, which its `parser()` passes to
|
|
236
236
|
`.with_symbols(...)`:
|
|
@@ -239,6 +239,8 @@ The main modules:
|
|
|
239
239
|
- TOML finds its symbols with `toml_edit`. What a TOML key means depends on the order of the headers, not on how the
|
|
240
240
|
syntax tree is nested.
|
|
241
241
|
- Markdown finds its sections with the `markdown` crate, the same parser that finds its comments.
|
|
242
|
+
- Makefile finds its symbols with `makefile-lossless`, the same crate that finds its comments. The crate is pinned to
|
|
243
|
+
one version. Its known bugs are listed in `docs/symbols.md`, not worked around.
|
|
242
244
|
|
|
243
245
|
Each language's tests list every symbol it finds. When you give a language symbols, also document its paths in
|
|
244
246
|
`docs/symbols.md` and in the "Symbols" section of the skill, `src/skill.md`. A test in `language_parsers/mod.rs` and the
|
|
@@ -274,7 +274,7 @@ checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06"
|
|
|
274
274
|
|
|
275
275
|
[[package]]
|
|
276
276
|
name = "blockwatch"
|
|
277
|
-
version = "0.16.
|
|
277
|
+
version = "0.16.8"
|
|
278
278
|
dependencies = [
|
|
279
279
|
"anyhow",
|
|
280
280
|
"assert-json-diff",
|
|
@@ -289,6 +289,7 @@ dependencies = [
|
|
|
289
289
|
"heck",
|
|
290
290
|
"ignore",
|
|
291
291
|
"libc",
|
|
292
|
+
"makefile-lossless",
|
|
292
293
|
"markdown",
|
|
293
294
|
"mlua",
|
|
294
295
|
"percent-encoding",
|
|
@@ -326,7 +327,6 @@ dependencies = [
|
|
|
326
327
|
"tree-sitter-json",
|
|
327
328
|
"tree-sitter-kotlin-ng",
|
|
328
329
|
"tree-sitter-lua",
|
|
329
|
-
"tree-sitter-make",
|
|
330
330
|
"tree-sitter-nix",
|
|
331
331
|
"tree-sitter-ocaml",
|
|
332
332
|
"tree-sitter-php",
|
|
@@ -491,6 +491,12 @@ version = "1.0.0"
|
|
|
491
491
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
492
492
|
checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48"
|
|
493
493
|
|
|
494
|
+
[[package]]
|
|
495
|
+
name = "countme"
|
|
496
|
+
version = "3.0.1"
|
|
497
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
498
|
+
checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636"
|
|
499
|
+
|
|
494
500
|
[[package]]
|
|
495
501
|
name = "cpufeatures"
|
|
496
502
|
version = "0.3.1"
|
|
@@ -861,6 +867,12 @@ dependencies = [
|
|
|
861
867
|
"regex-syntax",
|
|
862
868
|
]
|
|
863
869
|
|
|
870
|
+
[[package]]
|
|
871
|
+
name = "hashbrown"
|
|
872
|
+
version = "0.14.5"
|
|
873
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
874
|
+
checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
|
|
875
|
+
|
|
864
876
|
[[package]]
|
|
865
877
|
name = "hashbrown"
|
|
866
878
|
version = "0.17.1"
|
|
@@ -1119,7 +1131,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1119
1131
|
checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
|
|
1120
1132
|
dependencies = [
|
|
1121
1133
|
"equivalent",
|
|
1122
|
-
"hashbrown",
|
|
1134
|
+
"hashbrown 0.17.1",
|
|
1123
1135
|
]
|
|
1124
1136
|
|
|
1125
1137
|
[[package]]
|
|
@@ -1274,6 +1286,15 @@ dependencies = [
|
|
|
1274
1286
|
"which",
|
|
1275
1287
|
]
|
|
1276
1288
|
|
|
1289
|
+
[[package]]
|
|
1290
|
+
name = "makefile-lossless"
|
|
1291
|
+
version = "0.4.8"
|
|
1292
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1293
|
+
checksum = "25a80f1e6bd18fe790d69cc1dda3eedaaa75bbd052a9734a137017056b5e1fa7"
|
|
1294
|
+
dependencies = [
|
|
1295
|
+
"rowan",
|
|
1296
|
+
]
|
|
1297
|
+
|
|
1277
1298
|
[[package]]
|
|
1278
1299
|
name = "markdown"
|
|
1279
1300
|
version = "1.0.0"
|
|
@@ -1341,7 +1362,7 @@ dependencies = [
|
|
|
1341
1362
|
"mlua-sys",
|
|
1342
1363
|
"num-traits",
|
|
1343
1364
|
"parking_lot",
|
|
1344
|
-
"rustc-hash",
|
|
1365
|
+
"rustc-hash 2.1.3",
|
|
1345
1366
|
]
|
|
1346
1367
|
|
|
1347
1368
|
[[package]]
|
|
@@ -1535,7 +1556,7 @@ dependencies = [
|
|
|
1535
1556
|
"pin-project-lite",
|
|
1536
1557
|
"quinn-proto",
|
|
1537
1558
|
"quinn-udp",
|
|
1538
|
-
"rustc-hash",
|
|
1559
|
+
"rustc-hash 2.1.3",
|
|
1539
1560
|
"rustls",
|
|
1540
1561
|
"socket2",
|
|
1541
1562
|
"thiserror",
|
|
@@ -1557,7 +1578,7 @@ dependencies = [
|
|
|
1557
1578
|
"rand 0.10.3",
|
|
1558
1579
|
"rand_pcg",
|
|
1559
1580
|
"ring",
|
|
1560
|
-
"rustc-hash",
|
|
1581
|
+
"rustc-hash 2.1.3",
|
|
1561
1582
|
"rustls",
|
|
1562
1583
|
"rustls-pki-types",
|
|
1563
1584
|
"slab",
|
|
@@ -1751,6 +1772,24 @@ dependencies = [
|
|
|
1751
1772
|
"windows-sys 0.52.0",
|
|
1752
1773
|
]
|
|
1753
1774
|
|
|
1775
|
+
[[package]]
|
|
1776
|
+
name = "rowan"
|
|
1777
|
+
version = "0.16.1"
|
|
1778
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1779
|
+
checksum = "417a3a9f582e349834051b8a10c8d71ca88da4211e4093528e36b9845f6b5f21"
|
|
1780
|
+
dependencies = [
|
|
1781
|
+
"countme",
|
|
1782
|
+
"hashbrown 0.14.5",
|
|
1783
|
+
"rustc-hash 1.1.0",
|
|
1784
|
+
"text-size",
|
|
1785
|
+
]
|
|
1786
|
+
|
|
1787
|
+
[[package]]
|
|
1788
|
+
name = "rustc-hash"
|
|
1789
|
+
version = "1.1.0"
|
|
1790
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1791
|
+
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
|
|
1792
|
+
|
|
1754
1793
|
[[package]]
|
|
1755
1794
|
name = "rustc-hash"
|
|
1756
1795
|
version = "2.1.3"
|
|
@@ -2183,6 +2222,12 @@ version = "0.5.1"
|
|
|
2183
2222
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2184
2223
|
checksum = "8f50febec83f5ee1df3015341d8bd429f2d1cc62bcba7ea2076759d315084683"
|
|
2185
2224
|
|
|
2225
|
+
[[package]]
|
|
2226
|
+
name = "text-size"
|
|
2227
|
+
version = "1.1.1"
|
|
2228
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2229
|
+
checksum = "f18aa187839b2bdb1ad2fa35ead8c4c2976b64e4363c386d45ac0f7ee85c9233"
|
|
2230
|
+
|
|
2186
2231
|
[[package]]
|
|
2187
2232
|
name = "thiserror"
|
|
2188
2233
|
version = "2.0.21"
|
|
@@ -2602,16 +2647,6 @@ dependencies = [
|
|
|
2602
2647
|
"tree-sitter-language",
|
|
2603
2648
|
]
|
|
2604
2649
|
|
|
2605
|
-
[[package]]
|
|
2606
|
-
name = "tree-sitter-make"
|
|
2607
|
-
version = "1.1.1"
|
|
2608
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2609
|
-
checksum = "c5998dc7cbcbdab19fae8aefef982bf2d6544513d8d2e69cc44aec4c63810104"
|
|
2610
|
-
dependencies = [
|
|
2611
|
-
"cc",
|
|
2612
|
-
"tree-sitter-language",
|
|
2613
|
-
]
|
|
2614
|
-
|
|
2615
2650
|
[[package]]
|
|
2616
2651
|
name = "tree-sitter-nix"
|
|
2617
2652
|
version = "0.3.0"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "blockwatch"
|
|
3
|
-
version = "0.16.
|
|
3
|
+
version = "0.16.8"
|
|
4
4
|
edition = "2024"
|
|
5
5
|
repository = "https://github.com/mennanov/blockwatch"
|
|
6
6
|
description = "Language agnostic linter that keeps your code and documentation in sync and valid"
|
|
@@ -25,6 +25,8 @@ fnv = "1.0"
|
|
|
25
25
|
globset = "0.4.18"
|
|
26
26
|
heck = "0.5"
|
|
27
27
|
ignore = "0.4"
|
|
28
|
+
# Pinned exactly: a new version can change which symbols and comments a Makefile has.
|
|
29
|
+
makefile-lossless = "=0.4.8"
|
|
28
30
|
markdown = "1.0.0"
|
|
29
31
|
mlua = { version = "0.12.0", features = ["lua54", "vendored", "async", "send"] }
|
|
30
32
|
percent-encoding = "2.3"
|
|
@@ -61,7 +63,6 @@ tree-sitter-javascript = "0.25"
|
|
|
61
63
|
tree-sitter-json = "0.24.8"
|
|
62
64
|
tree-sitter-kotlin-ng = "1.1"
|
|
63
65
|
tree-sitter-lua = "0.5"
|
|
64
|
-
tree-sitter-make = "1.1"
|
|
65
66
|
tree-sitter-nix = "0.3.0"
|
|
66
67
|
tree-sitter-ocaml = "0.26"
|
|
67
68
|
tree-sitter-php = "0.25"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blockwatch-cli
|
|
3
|
-
Version: 0.16.
|
|
3
|
+
Version: 0.16.8
|
|
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
|
|
@@ -90,9 +90,9 @@ Two validators work across files:
|
|
|
90
90
|
|
|
91
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
92
|
Markdown file, an element or attribute in an XML file such as `pom.xml` or a `.csproj`, a constant in a Go, C, C++,
|
|
93
|
-
Python, Rust, TypeScript, JavaScript, Java, C#, Kotlin or
|
|
94
|
-
a Terraform or other HCL file (see [Symbols](docs/symbols.md)). The
|
|
95
|
-
own: the things you'd otherwise have to nitpick in code review.
|
|
93
|
+
Python, Rust, TypeScript, JavaScript, Java, C#, Kotlin, Swift or PHP file, a variable in a shell script or a Makefile, a
|
|
94
|
+
field in a Protocol Buffers file, or a value in a Terraform or other HCL file (see [Symbols](docs/symbols.md)). The
|
|
95
|
+
other validators check a single block on their own: the things you'd otherwise have to nitpick in code review.
|
|
96
96
|
|
|
97
97
|
<!-- <block name="available-validators"
|
|
98
98
|
same-as="src/validators/mod.rs:validator-registry, docs/validators/README.md:validators-index"
|
|
@@ -220,7 +220,7 @@ exclusions, and custom extension mappings.
|
|
|
220
220
|
|
|
221
221
|
```yaml
|
|
222
222
|
- repo: https://github.com/mennanov/blockwatch
|
|
223
|
-
rev: v0.16.
|
|
223
|
+
rev: v0.16.8 # Use latest release
|
|
224
224
|
hooks:
|
|
225
225
|
- id: blockwatch
|
|
226
226
|
```
|
|
@@ -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.16.
|
|
22
|
+
rev: v0.16.8 # 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.16.
|
|
62
|
+
rev: v0.16.8 # 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.16.
|
|
561
|
-
"semanticVersion": "0.16.
|
|
560
|
+
"version": "0.16.8",
|
|
561
|
+
"semanticVersion": "0.16.8",
|
|
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.16.
|
|
568
|
+
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.16.8/docs/validators/keep-sorted.md"
|
|
569
569
|
}
|
|
570
570
|
]
|
|
571
571
|
}
|