comment-analysis
Version:
Code comment rate analysis tool with multi-language support
147 lines (111 loc) โข 6.44 kB
Markdown
# Code Comment Rate Analysis Tool
A command-line tool for analyzing comment rates in code files, supporting multiple programming languages and file formats.
## Features
- ๐ฏ Support for multiple file types: Vue, JavaScript, TypeScript, JSX, TSX, Python, HTML, CSS, SCSS, LESS, Go, Rust, Java
- ๐ Statistics for multiple comment types: single-line comments, multi-line comments, inline comments
- ๐ Generate detailed statistics tables with file types, file counts, comment lines, empty lines, total lines, and comment rates
- ๐จ Beautiful colored output using chalk library
- ๐ Support for recursive analysis of folders and subfolders
- ๐ Multi-language support (English/Chinese)
## Installation
### Method 1: Install from source
1. Clone or download the project to your local machine
2. Install dependencies:
```bash
pnpm install
```
### Method 2: Global installation (Recommended)
```bash
npm install -g comment-analysis
```
## Usage
### Basic Usage
```bash
# Analyze specified folder
comment-analysis /path/to/your/project
# Or run from source
node index.js /path/to/your/project
pnpm start /path/to/your/project
```
### Language Options
```bash
# Use English (default)
comment-analysis /path/to/your/project
# Use Chinese
comment-analysis /path/to/your/project --lang zh-CN
comment-analysis /path/to/your/project -l zh-CN
```
### Examples
```bash
# Analyze current directory
comment-analysis .
# Analyze specific project folder
comment-analysis /home/user/my-project
# Analyze relative path
comment-analysis ./src
# Analyze with Chinese output
comment-analysis . --lang zh-CN
```
## Output Example
```
Starting analysis of folder: /path/to/project
Analyzing 3 files...
โโโโโโโโโโโโโโโโโคโโโโโโโโโโโโโคโโโโโโโโโโโโโคโโโโโโโโโโโคโโโโโโโโโโโโโคโโโโโโโโโโโโโโโโ
โ File Type โ File Count โ Comments โ Empty โ Total โ Comment Rate โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโข
โ Vue โ 1 โ 24 โ 19 โ 141 โ 17.02% โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโข
โ Python โ 1 โ 90 โ 33 โ 172 โ 52.33% โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโข
โ JavaScript โ 1 โ 25 โ 11 โ 70 โ 35.71% โ
โโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโข
โ Total โ 3 โ 139 โ 63 โ 383 โ 36.29% โ
โโโโโโโโโโโโโโโโโงโโโโโโโโโโโโโงโโโโโโโโโโโโโงโโโโโโโโโโโงโโโโโโโโโโโโโงโโโโโโโโโโโโโโโโ
Comment Rate Guide: Excellent (>30%) | Good (15-30%) | Needs Improvement (<15%)
```
## Supported File Types
| File Type | Extension | Supported Comment Types |
| ---------- | --------- | ---------------------------------------------------------- |
| Vue | .vue | // single-line, /\* \*/ multi-line, <!-- --> HTML comments |
| JavaScript | .js | // single-line, /\* \*/ multi-line |
| TypeScript | .ts | // single-line, /\* \*/ multi-line |
| JSX | .jsx | // single-line, /\* _/ multi-line, {/_ \*/} JSX comments |
| TSX | .tsx | // single-line, /\* _/ multi-line, {/_ \*/} JSX comments |
| Python | .py | # single-line, """ """ multi-line, ''' ''' multi-line |
| HTML | .html | <!-- --> HTML comments |
| CSS | .css | // single-line, /\* \*/ multi-line |
| SCSS | .scss | // single-line, /\* \*/ multi-line |
| LESS | .less | // single-line, /\* \*/ multi-line |
| Go | .go | // single-line, /\* \*/ multi-line |
| Rust | .rs | // single-line, /\* \*/ multi-line |
| Java | .java | // single-line, /\* _/ multi-line, /\*\* _/ documentation |
## Statistics Description
- **File Count**: Total number of files of this type
- **Comments**: Number of lines containing comments (including single-line, multi-line, and inline comments)
- **Empty**: Number of completely empty lines or lines containing only whitespace
- **Total**: Total number of lines in the file
- **Comment Rate**: Percentage of comment lines to total lines
## Project Structure
```
comment-analysis/
โโโ index.js # Main program file
โโโ package.json # Project configuration and dependencies
โโโ README.md # English documentation
โโโ README.zh-CN.md # Chinese documentation
โโโ .gitignore # Git ignore file configuration
โโโ tests/ # Test files folder
โโโ README.md # Test files description
โโโ test-example.js # JavaScript test file
โโโ test-example.vue # Vue test file
โโโ test-example.py # Python test file
โโโ test-example.go # Go test file
โโโ test-example.rs # Rust test file
โโโ test-example.java # Java test file
```
## Dependencies
- `commander`: Command line argument parsing
- `glob`: File pattern matching
- `chalk`: Terminal color output
- `cli-table3`: Beautiful table output
## License
MIT License