blockwatch-0.1.5 is not a library.
Visit the last successful build:
blockwatch-0.2.25
blockwatch
Linter that tracks changes between dependent blocks of code.
How
Declare the blocks in the comments of the source file.
Validate by running git diff --patch | blockwatch:
Example
Whenever some block is modified then all its affected blocks (possibly in different files) should also be updated.
main.rs:
// <block affects="README.md:supported-languages">
const SUPPORTED_LANGUAGES = ;
// </block>
README.md:
- -
If the block in main.rs is modified (e.g. added python to the list) then the following command will produce an
error:
git diff --patch | blockwatch
Install
From source
cargo install blockwatch
Prebuilt binary
See https://github.com/mennanov/blockwatch/releases
Supported languages
- Java
- Markdown
- Python
- Rust
More examples
Blocks may reference blocks in the same file
// <block name="foo" affects=":bar, :buzz">
// </block>
// <block name="bar">
// Some other piece of code.
// </block>
// <block name="buzz">
// One more.
// </block>
Blocks may reference each other
// <block name="foo" affects=":bar">
// </block>
// <block name="bar" affects=":foo">
// </block>
Blocks can be nested
// <block name="entire-file">
// <block name="small-block">
// </block>
// </block>
Known limitations
- deleted blocks are ignored
- blocks declared in unsupported languages are ignored
- multiple blocks can't be declared in a single line:
<block><block>will not work</block/</block>
Contributing
Adding a language support
Follow the pull request for Python as an example.
Run tests
cargo test