blockwatch-cli 0.11.1__tar.gz → 0.11.2__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.11.1 → blockwatch_cli-0.11.2}/CHANGELOG.md +12 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/Cargo.lock +28 -1
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/Cargo.toml +3 -1
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/PKG-INFO +1 -1
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/README.md +5 -2
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/ci.md +2 -2
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/cli.md +3 -3
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/setup.py +1 -1
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/block_parser.rs +2 -2
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/blocks.rs +16 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/javascript.rs +46 -0
- blockwatch_cli-0.11.2/src/language_parsers/lean.rs +495 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/markdown.rs +1 -1
- blockwatch_cli-0.11.2/src/language_parsers/mdx.rs +420 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/mod.rs +81 -49
- blockwatch_cli-0.11.2/src/language_parsers/ocaml.rs +136 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/tsx.rs +6 -6
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.agents/.claude-plugin/plugin.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.agents/skills/blockwatch/SKILL.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.claude-plugin/marketplace.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/dependabot.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/blockwatch.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/codeql.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/markdownlint.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/pypi.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/release.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/rust.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.github/workflows/trusted-checks.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.gitignore +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.markdownlint-cli2.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.pre-commit-config.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/.pre-commit-hooks.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/AGENTS.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/CLAUDE.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/LICENSE +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/SECURITY.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/blockwatch.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/clippy.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/codecov.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/demo.gif +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/dist-workspace.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/agents.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/symbols.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/README.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/affects.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/check-ai.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/check-lua.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/keep-sorted.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/keep-unique.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/line-count.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/line-pattern.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/docs/validators/same-as.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/pypi/pyproject.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/pyproject.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/release.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/scripts/check_latest_gpt_nano_model.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/cli.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/config.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/diff_parser.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/flags.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/fs.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/bash.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/c.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/c_sharp.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/cmake.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/cpp.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/css.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/dart.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/dockerfile.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/elixir.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/go.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/graphql.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/groovy.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/hcl.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/html.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/java.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/json.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/json.scm +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/kotlin.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/lua.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/makefile.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/nix.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/php.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/proto.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/python.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/ruby.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/rust.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/scala.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/sql.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/starlark.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/swift.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/toml.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/typescript.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/xml.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/language_parsers/yaml.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/lib.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/main.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/path_arguments.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/paths_glob.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/repo_path.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/report.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/sarif.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/settings.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/skill.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/symbol_path.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/symbols.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/tag_parser.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/affects.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/check_ai.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/check_lua.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/keep_sorted.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/keep_unique.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/line_count.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/line_pattern.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/mod.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/validators/same_as.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/violation_address.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/src/virtual_blocks.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/affects.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/check_ai.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/check_lua.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/common/empty.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/common/mod.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/config.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/encoding.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/general.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/keep_sorted.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/keep_unique.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/line_count.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/line_pattern.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/list.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/path_arguments.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/repository_root.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/same_as.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/sarif.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/skill.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/suppressions.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/symbol_references.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/cross_file_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/cross_file_target.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/dangling.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/missing_symbol.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/more_added_than_deleted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/multiline_tag_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/multiline_tag_target.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/nested_mapping_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/nested_mapping_target.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/sibling.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/symbol_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/symbol_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/table_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/table_target.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/tag_and_content_source.ts +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/tag_and_content_target.ts +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/whole_file_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/affects/whole_file_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_ai/two_blocks.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/affects.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/affects.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/affects_drift.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/blocking_io.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/blocking_io.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/echo.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/fail.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/mode.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/os.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/pathfmt/report_path.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/pathfmt/source.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/pattern.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/pattern_many_matches.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/pattern_no_match.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/success.lua +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/check_lua/success_and_failure.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/config/glob_target/config.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/config/glob_target/package.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/config/glob_target/plugins/blue/package.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/config/glob_target/plugins/green/package.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/config/glob_target/plugins/red/package.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/block_selection.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/custom_file_extension.javascript +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/custom_file_extension.python +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/disable_enable.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/paths/invalid.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/paths/subdir/nested_invalid.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/paths/valid.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/general/severity.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/hidden/.github/workflows/ci.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/keep_sorted/orderings.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/keep_unique/basic_and_pattern.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/line_count/equality_and_greater_than.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/line_pattern/forbidden_text.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/line_pattern/hex_and_word_patterns.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/list/.hg/.gitkeep +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/list/a.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/list/b.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/positions/unicode_columns.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/custom_ext_source.javascript +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/custom_ext_target.javascript +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/package.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/paths/alpha/item.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/paths/beta/item.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/paths_and_block_source.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/paths_source.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/sibling.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/split_table_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/split_table_target.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/symbol_mismatch_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/symbol_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/target.md +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/whole_file_mismatch_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/whole_file_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/same_as/whole_file_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/sarif/advisory.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/sarif/clean.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/sarif/sorted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/sarif/unnamed.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg_gone_a.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg_gone_b.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg_lowercase_trailer.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg_malformed.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/commit_msg_with_noise.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/dangling.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/sorted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/symbol.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/symbol_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/two_rules.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/suppressions/unnamed.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/escapes_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/escapes_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/filter_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/filter_target.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/json_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/json_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/jsonc_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/jsonc_target.jsonc +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/mixed_list_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/mixed_list_target.json +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/toml_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/toml_target.toml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/yaml_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/yaml_target.yaml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/yml_source.rs +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/symbol_references/yml_target.yml +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/affects/pair.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/clean/counted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/clean/noop.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/clean/notes.txt +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/clean/sorted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/diff/two_blocks.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/failing/unsorted.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/testdata/verbosity/mixed/both_kinds.py +0 -0
- {blockwatch_cli-0.11.1 → blockwatch_cli-0.11.2}/tests/verbosity.rs +0 -0
|
@@ -12,6 +12,18 @@ 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.11.2] - 2026-10-15
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- blockwatch now supports Lean (`.lean`), OCaml (`.ml`, `.mli`) and MDX (`.mdx`) files. Before, it skipped them, so
|
|
20
|
+
their tags were never checked. In MDX, put tags in JavaScript comments, such as `{/* <block> */}`.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- In JSX and TSX, the braces around a `{/* <block> */}` tag are no longer block content. Before, the `}` after a start
|
|
25
|
+
tag and the `{` before an end tag were part of the block, so e.g. `keep-sorted` reported a correctly sorted list.
|
|
26
|
+
|
|
15
27
|
## [0.11.1] - 2026-10-14
|
|
16
28
|
|
|
17
29
|
### Added
|
|
@@ -274,7 +274,7 @@ checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06"
|
|
|
274
274
|
|
|
275
275
|
[[package]]
|
|
276
276
|
name = "blockwatch"
|
|
277
|
-
version = "0.11.
|
|
277
|
+
version = "0.11.2"
|
|
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
|
+
"markdown",
|
|
292
293
|
"mlua",
|
|
293
294
|
"percent-encoding",
|
|
294
295
|
"predicates",
|
|
@@ -328,6 +329,7 @@ dependencies = [
|
|
|
328
329
|
"tree-sitter-make",
|
|
329
330
|
"tree-sitter-md",
|
|
330
331
|
"tree-sitter-nix",
|
|
332
|
+
"tree-sitter-ocaml",
|
|
331
333
|
"tree-sitter-php",
|
|
332
334
|
"tree-sitter-proto",
|
|
333
335
|
"tree-sitter-python",
|
|
@@ -1268,6 +1270,15 @@ dependencies = [
|
|
|
1268
1270
|
"which",
|
|
1269
1271
|
]
|
|
1270
1272
|
|
|
1273
|
+
[[package]]
|
|
1274
|
+
name = "markdown"
|
|
1275
|
+
version = "1.0.0"
|
|
1276
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1277
|
+
checksum = "a5cab8f2cadc416a82d2e783a1946388b31654d391d1c7d92cc1f03e295b1deb"
|
|
1278
|
+
dependencies = [
|
|
1279
|
+
"unicode-id",
|
|
1280
|
+
]
|
|
1281
|
+
|
|
1271
1282
|
[[package]]
|
|
1272
1283
|
name = "matchit"
|
|
1273
1284
|
version = "0.8.4"
|
|
@@ -2646,6 +2657,16 @@ dependencies = [
|
|
|
2646
2657
|
"tree-sitter-language",
|
|
2647
2658
|
]
|
|
2648
2659
|
|
|
2660
|
+
[[package]]
|
|
2661
|
+
name = "tree-sitter-ocaml"
|
|
2662
|
+
version = "0.26.0"
|
|
2663
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2664
|
+
checksum = "43adb10fcccbcbbce0f4adc9dab7cd55f0a5eafc2d71bd4c03fcc5d6767066e0"
|
|
2665
|
+
dependencies = [
|
|
2666
|
+
"cc",
|
|
2667
|
+
"tree-sitter-language",
|
|
2668
|
+
]
|
|
2669
|
+
|
|
2649
2670
|
[[package]]
|
|
2650
2671
|
name = "tree-sitter-php"
|
|
2651
2672
|
version = "0.25.1"
|
|
@@ -2788,6 +2809,12 @@ version = "2.9.0"
|
|
|
2788
2809
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2789
2810
|
checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142"
|
|
2790
2811
|
|
|
2812
|
+
[[package]]
|
|
2813
|
+
name = "unicode-id"
|
|
2814
|
+
version = "0.3.7"
|
|
2815
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2816
|
+
checksum = "65dd75ab2d9d379dbe86d4059e91d8b5a6e7054865eaba1ddbfc7a817ff96392"
|
|
2817
|
+
|
|
2791
2818
|
[[package]]
|
|
2792
2819
|
name = "unicode-ident"
|
|
2793
2820
|
version = "1.0.24"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "blockwatch"
|
|
3
3
|
# <block name="crate-version" same-as="docs/cli.md:sarif-example" same-as-mode="subset" same-as-pattern='version = "(?P<value>\d+\.\d+\.\d+)"'>
|
|
4
|
-
version = "0.11.
|
|
4
|
+
version = "0.11.2"
|
|
5
5
|
# </block>
|
|
6
6
|
edition = "2024"
|
|
7
7
|
repository = "https://github.com/mennanov/blockwatch"
|
|
@@ -27,6 +27,7 @@ fnv = "1.0"
|
|
|
27
27
|
globset = "0.4.18"
|
|
28
28
|
heck = "0.5"
|
|
29
29
|
ignore = "0.4"
|
|
30
|
+
markdown = "1.0.0"
|
|
30
31
|
mlua = { version = "0.12.0", features = ["lua54", "vendored", "async", "send"] }
|
|
31
32
|
percent-encoding = "2.3"
|
|
32
33
|
regex = "1.12"
|
|
@@ -66,6 +67,7 @@ tree-sitter-lua = "0.5"
|
|
|
66
67
|
tree-sitter-make = "1.1"
|
|
67
68
|
tree-sitter-md = "0.5"
|
|
68
69
|
tree-sitter-nix = "0.3.0"
|
|
70
|
+
tree-sitter-ocaml = "0.26"
|
|
69
71
|
tree-sitter-php = "0.25"
|
|
70
72
|
tree-sitter-proto = "0.6.0"
|
|
71
73
|
tree-sitter-python = "0.25"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blockwatch-cli
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.2
|
|
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
|
|
@@ -10,7 +10,7 @@ Some parts of a codebase have to change together: a function and its docs, or a
|
|
|
10
10
|
blockwatch lets you write those rules in comments, right next to the code. If they fall out of sync, your pre-commit
|
|
11
11
|
hook or CI run fails.
|
|
12
12
|
|
|
13
|
-
Supports [
|
|
13
|
+
Supports [37 languages](#supported-languages) and their common file names, such as `Gemfile` or `.mjs`.
|
|
14
14
|
|
|
15
15
|
[//]: # (</block>)
|
|
16
16
|
|
|
@@ -215,7 +215,7 @@ exclusions, and custom extension mappings.
|
|
|
215
215
|
|
|
216
216
|
```yaml
|
|
217
217
|
- repo: https://github.com/mennanov/blockwatch
|
|
218
|
-
rev: v0.11.
|
|
218
|
+
rev: v0.11.2 # Use latest release
|
|
219
219
|
hooks:
|
|
220
220
|
- id: blockwatch
|
|
221
221
|
```
|
|
@@ -259,10 +259,13 @@ For plain git hooks, local pre-commit setups, and sandboxing untrusted Lua scrip
|
|
|
259
259
|
- Java
|
|
260
260
|
- JavaScript (with `.mjs` and `.cjs` support)
|
|
261
261
|
- Kotlin
|
|
262
|
+
- Lean
|
|
262
263
|
- Lua (with `.rockspec` support)
|
|
264
|
+
- MDX
|
|
263
265
|
- Makefile (with `GNUmakefile` and `.mak` support)
|
|
264
266
|
- Markdown
|
|
265
267
|
- Nix
|
|
268
|
+
- OCaml (`.ml`, `.mli`)
|
|
266
269
|
- PHP
|
|
267
270
|
- Protocol Buffers (`.proto`)
|
|
268
271
|
- Python (with `.pyi` and `.pyw` support)
|
|
@@ -20,7 +20,7 @@ To use [pre-commit](https://pre-commit.com), add the hook to `.pre-commit-config
|
|
|
20
20
|
|
|
21
21
|
```yaml
|
|
22
22
|
- repo: https://github.com/mennanov/blockwatch
|
|
23
|
-
rev: v0.11.
|
|
23
|
+
rev: v0.11.2 # Use latest release
|
|
24
24
|
hooks:
|
|
25
25
|
- id: blockwatch
|
|
26
26
|
```
|
|
@@ -61,7 +61,7 @@ The `blockwatch` hook runs before the commit message exists, so it cannot see a
|
|
|
61
61
|
|
|
62
62
|
```yaml
|
|
63
63
|
- repo: https://github.com/mennanov/blockwatch
|
|
64
|
-
rev: v0.11.
|
|
64
|
+
rev: v0.11.2 # Use latest release
|
|
65
65
|
hooks:
|
|
66
66
|
- id: blockwatch-commit-msg
|
|
67
67
|
```
|
|
@@ -546,15 +546,15 @@ Nothing else about the run changes: the same violations are found, and the exit
|
|
|
546
546
|
"tool": {
|
|
547
547
|
"driver": {
|
|
548
548
|
"name": "blockwatch",
|
|
549
|
-
"version": "0.11.
|
|
550
|
-
"semanticVersion": "0.11.
|
|
549
|
+
"version": "0.11.2",
|
|
550
|
+
"semanticVersion": "0.11.2",
|
|
551
551
|
"informationUri": "https://github.com/mennanov/blockwatch",
|
|
552
552
|
"rules": [
|
|
553
553
|
{
|
|
554
554
|
"id": "keep-sorted",
|
|
555
555
|
"name": "keep-sorted",
|
|
556
556
|
"shortDescription": { "text": "Requires the lines of a block to stay in order." },
|
|
557
|
-
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.11.
|
|
557
|
+
"helpUri": "https://github.com/mennanov/blockwatch/blob/v0.11.2/docs/validators/keep-sorted.md"
|
|
558
558
|
}
|
|
559
559
|
]
|
|
560
560
|
}
|
|
@@ -6,7 +6,7 @@ setup(
|
|
|
6
6
|
name='blockwatch-pre-commit-placeholder',
|
|
7
7
|
version='0.0.0',
|
|
8
8
|
# <block same-as="Cargo.toml:crate-version" same-as-pattern="blockwatch-cli==(?P<value>\d+\.\d+\.\d+)">
|
|
9
|
-
install_requires=['blockwatch-cli==0.11.
|
|
9
|
+
install_requires=['blockwatch-cli==0.11.2'],
|
|
10
10
|
# </block>
|
|
11
11
|
# Without it, setuptools takes the directories under src/ for Python packages.
|
|
12
12
|
packages=[],
|
|
@@ -32,7 +32,7 @@ impl<C: CommentsParser> BlocksFromCommentsParser<C> {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/// Assembles [`Block`]s out of a comment stream.
|
|
35
|
-
struct BlocksIterator<'source, I: Iterator<Item = Comment>> {
|
|
35
|
+
pub(crate) struct BlocksIterator<'source, I: Iterator<Item = Comment>> {
|
|
36
36
|
partial_blocks: PartialBlocksIterator<'source, I>,
|
|
37
37
|
/// Start tags still waiting for their end tag, outermost first.
|
|
38
38
|
open_blocks: Vec<BlockStart>,
|
|
@@ -46,7 +46,7 @@ struct BlocksIterator<'source, I: Iterator<Item = Comment>> {
|
|
|
46
46
|
|
|
47
47
|
impl<'source, I: Iterator<Item = Comment>> BlocksIterator<'source, I> {
|
|
48
48
|
/// Starts the block stream over the comments of `contents`, which must be in source order.
|
|
49
|
-
fn new(comments: I, contents: &'source str) -> Self {
|
|
49
|
+
pub(crate) fn new(comments: I, contents: &'source str) -> Self {
|
|
50
50
|
Self {
|
|
51
51
|
partial_blocks: PartialBlocksIterator::new(comments, contents),
|
|
52
52
|
open_blocks: Vec::new(),
|
|
@@ -2982,6 +2982,10 @@ mod supported_languages_tests {
|
|
|
2982
2982
|
"kts.kts".to_string(),
|
|
2983
2983
|
"// <block>\nplugins { }\n// </block>".to_string(),
|
|
2984
2984
|
),
|
|
2985
|
+
(
|
|
2986
|
+
"lean.lean".to_string(),
|
|
2987
|
+
"-- <block>\ndef x := 1\n-- </block>".to_string(),
|
|
2988
|
+
),
|
|
2985
2989
|
(
|
|
2986
2990
|
"lua.lua".to_string(),
|
|
2987
2991
|
"-- <block>\nlocal x = 1\n-- </block>".to_string(),
|
|
@@ -3006,6 +3010,10 @@ mod supported_languages_tests {
|
|
|
3006
3010
|
"md.md".to_string(),
|
|
3007
3011
|
"<div>\n<!-- <block> -->\n## Heading\n<!-- </block> -->\n</div>".to_string(),
|
|
3008
3012
|
),
|
|
3013
|
+
(
|
|
3014
|
+
"mdx.mdx".to_string(),
|
|
3015
|
+
"{/* <block> */}\n## Heading\n{/* </block> */}".to_string(),
|
|
3016
|
+
),
|
|
3009
3017
|
(
|
|
3010
3018
|
"mk.mk".to_string(),
|
|
3011
3019
|
"# <block>\nall:\n\t@echo \"hello\"\n# </block>".to_string(),
|
|
@@ -3022,6 +3030,14 @@ mod supported_languages_tests {
|
|
|
3022
3030
|
"nix.nix".to_string(),
|
|
3023
3031
|
"# <block>\n{ pkgs = null; }\n# </block>".to_string(),
|
|
3024
3032
|
),
|
|
3033
|
+
(
|
|
3034
|
+
"ml.ml".to_string(),
|
|
3035
|
+
"(* <block> *)\nlet x = 1\n(* </block> *)".to_string(),
|
|
3036
|
+
),
|
|
3037
|
+
(
|
|
3038
|
+
"mli.mli".to_string(),
|
|
3039
|
+
"(* <block> *)\nval x : int\n(* </block> *)".to_string(),
|
|
3040
|
+
),
|
|
3025
3041
|
(
|
|
3026
3042
|
"php.php".to_string(),
|
|
3027
3043
|
"<?php\n# <block>\necho 'hello';\n# </block>\n?>".to_string(),
|
|
@@ -100,4 +100,50 @@ let between = 2;
|
|
|
100
100
|
|
|
101
101
|
Ok(())
|
|
102
102
|
}
|
|
103
|
+
|
|
104
|
+
#[test]
|
|
105
|
+
fn jsx_expression_holding_only_a_comment_covers_its_braces() -> anyhow::Result<()> {
|
|
106
|
+
let mut comments_parser = comments_parser()?;
|
|
107
|
+
|
|
108
|
+
let comments: Vec<Comment> = comments_parser
|
|
109
|
+
.parse(
|
|
110
|
+
r#"const list = (
|
|
111
|
+
<ul>
|
|
112
|
+
{/* lone */}
|
|
113
|
+
{/* with code */ items}
|
|
114
|
+
{ /* first */ /* second */ }
|
|
115
|
+
</ul>
|
|
116
|
+
);
|
|
117
|
+
"#,
|
|
118
|
+
)
|
|
119
|
+
.collect();
|
|
120
|
+
|
|
121
|
+
assert_eq!(
|
|
122
|
+
comments,
|
|
123
|
+
vec![
|
|
124
|
+
Comment {
|
|
125
|
+
position_range: Position::new(3, 5)..Position::new(3, 17),
|
|
126
|
+
source_range: 26..38,
|
|
127
|
+
comment_text: " lone ".to_string()
|
|
128
|
+
},
|
|
129
|
+
Comment {
|
|
130
|
+
position_range: Position::new(4, 6)..Position::new(4, 21),
|
|
131
|
+
source_range: 44..59,
|
|
132
|
+
comment_text: " with code ".to_string()
|
|
133
|
+
},
|
|
134
|
+
Comment {
|
|
135
|
+
position_range: Position::new(5, 7)..Position::new(5, 18),
|
|
136
|
+
source_range: 73..84,
|
|
137
|
+
comment_text: " first ".to_string()
|
|
138
|
+
},
|
|
139
|
+
Comment {
|
|
140
|
+
position_range: Position::new(5, 19)..Position::new(5, 31),
|
|
141
|
+
source_range: 85..97,
|
|
142
|
+
comment_text: " second ".to_string()
|
|
143
|
+
},
|
|
144
|
+
]
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
Ok(())
|
|
148
|
+
}
|
|
103
149
|
}
|