Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 1.62 KB

README.md

File metadata and controls

64 lines (44 loc) · 1.62 KB

vardecl

Determine if a C/C++ codebase prefers commas or semicolons for variable declarations.

vardecl statically analyzes your C/C++ source files to determine the preferred method of declaring new variables.

Demo

asciicast

Install

Prerequisites

To build vardecl, you'll need Rust and Clang (for libclang).

via Cargo
$ cargo install --git https://github.com/kshvmdn/vardecl.git
Build manually
$ git clone https://github.com/kshvmdn/vardecl.git
$ cd vardecl
$ cargo build --release
$ mv ./target/release/vardecl ~/.cargo/bin

Usage

vardecl expects one or more files as input.

$ vardecl /path/to/file ...

Examples

$ cat main.c
void f() {
  int a, b = 2;
  int c;
  int d;
  int e; int f = 1;
  char *g,
        h,
        i = 'a';
}
$ vardecl main.c
comma-delimited decls     : 3
semicolon-delimited decls : 3

The example should be self-explanatory: there are three pairs of comma-delimited declarations (int a, b;, char *g, h;, char h, i;) and three pairs of semicolon-delimited declarations (int c; int d;, int d; int e;, int e; int f;).

Contribute

This project is completely open source, feel free to open an issue or submit a pull request.

I'm also quite new to Rust, so I'd love any feedback.