injm
A CLI tool that injects content into marked regions in source files.
Table of Contents
Installation
Cargo
Nix
Download Binary
Download the latest binary for your platform from GitHub Releases.
Usage
Mark a region in your source file with injm begin and injm end comments:
dest.rs
Then pipe content into injm:
|
Result:
dest.rs
Running injm again will replace the content between the markers:
|
Inject into a Specific Region
Use :id to name a region:
dest.rs
Inject into a specific region with --id:
|
Inject into multiple regions at once:
|
If --id is not specified, all regions without an ID will be injected.
Dry Run
Preview the result without writing to the file:
|
Supported Languages
injm uses tree-sitter to parse source files, so markers are detected from actual comment nodes — not from string literals or other non-comment content.
Supports any language recognized by tree-sitter-language-pack, including:
- Rust, C, C++
- Python, Ruby
- JavaScript, TypeScript
- Go, Java
- And 300+ more
Roadmap
See ROADMAP.md.
License
MIT
Acknowledgement
- clap-rs/clap: A full featured, fast Command Line Argument Parser for Rust
- xberg-io/tree-sitter-language-pack: Comprehensive tree-sitter grammar compilation with polyglot bindings — Rust, Python, Node.js, Go, Java, Ruby, Elixir, PHP, C#, WASM, Dart, Kotlin-Android, Swift, Zig, and CLI. 306+ languages.