Files
cheliangzhao 81b3c82d16 docs: translate reference documentation from Chinese to English
- Translate arkguard-obfuscation.md (ArkGuard code obfuscation guide)
- Translate hstack.md (stack trace analysis tool)
- Translate codelinter.md (code linting tool)
- Translate hvigor-commandline.md (Hvigor build tool)
- Fix capitalization: ArkTs -> ArkTS in README title
2026-02-10 20:38:13 +08:00

161 lines
4.0 KiB
Markdown

# CodeLinter Code Analysis Tool
codelinter is a code analysis and auto-fix tool for HarmonyOS, suitable for integration into gating checks or CI/CD pipelines.
## Command Format
```bash
codelinter [options] [dir]
```
- `options`: Optional configuration parameters
- `dir`: Project root directory to check (optional, defaults to current directory)
## Command Parameters
| Parameter | Description |
|-----------|-------------|
| `--config, -c <filepath>` | Specify rule configuration file (code-linter.json5) |
| `--fix` | Check and apply auto-fixes simultaneously |
| `--format, -f <format>` | Output format: `default`/`json`/`xml`/`html` |
| `--output, -o <filepath>` | Specify output file path (suppresses console output) |
| `--version, -v` | Show version |
| `--product, -p <productName>` | Specify the active product |
| `--incremental, -i` | Check only Git incremental files (added/modified/renamed) |
| `--help, -h` | Show help |
| `--exit-on, -e <levels>` | Specify warning levels that trigger a non-zero exit code |
## Basic Usage
### Run in the Project Root Directory
```bash
# Check current project with default rules
codelinter
# Specify a rule configuration file
codelinter -c ./code-linter.json5
# Check and apply auto-fixes
codelinter -c ./code-linter.json5 --fix
```
### Run Outside the Project Directory
```bash
# Check a specific project directory
codelinter /path/to/project
# Check multiple directories or files
codelinter dir1 dir2 file1.ets
# Specify rule file and project directory
codelinter -c /path/to/code-linter.json5 /path/to/project
# Check and fix a specific project
codelinter -c ./code-linter.json5 /path/to/project --fix
```
## Output Formats
```bash
# Default text format to console
codelinter /path/to/project
# JSON format output
codelinter /path/to/project -f json
# HTML format saved to file
codelinter /path/to/project -f html -o ./report.html
# XML format saved to file
codelinter /path/to/project -f xml -o ./report.xml
```
## Incremental Checking
Check only incremental files in a Git project (only added, modified, or renamed files):
```bash
codelinter -i
codelinter --incremental
```
## Specifying a Product
When the project has multiple products, specify the active product:
```bash
codelinter -p free /path/to/project
codelinter --product default
```
## Exit Codes (--exit-on)
Used in CI/CD to control the pipeline based on warning levels. Warning levels: `error`, `warn`, `suggestion`
Exit code calculation (3-bit binary number, from high to low representing error, warn, suggestion):
| Configuration | Check Results Include | Binary | Exit Code |
|---------------|---------------------|--------|-----------|
| `--exit-on error` | error, warn, suggestion | 100 | 4 |
| `--exit-on error` | warn, suggestion | 000 | 0 |
| `--exit-on error,warn` | error, warn | 110 | 6 |
| `--exit-on error,warn,suggestion` | error | 100 | 4 |
| `--exit-on error,warn,suggestion` | error, warn, suggestion | 111 | 7 |
```bash
# Non-zero exit code only for error level
codelinter --exit-on error
# Non-zero exit code for error and warn levels
codelinter --exit-on error,warn
# Non-zero exit code for all levels
codelinter --exit-on error,warn,suggestion
```
## CI/CD Integration Examples
```bash
# Full CI check pipeline
codelinter -c ./code-linter.json5 \
-f json \
-o ./codelinter-report.json \
--exit-on error,warn
# Incremental check (changed files only)
codelinter -i -c ./code-linter.json5 --exit-on error
# Check with auto-fix, generate HTML report
codelinter -c ./code-linter.json5 \
--fix \
-f html \
-o ./codelinter-report.html
```
## Rule Configuration File (code-linter.json5)
The default rule list can be viewed in the generated `code-linter.json5` file, as indicated by the console output after a check completes.
Example configuration:
```json5
{
"files": [
"**/*.ets",
"**/*.ts"
],
"ignore": [
"**/node_modules/**",
"**/oh_modules/**",
"**/build/**"
],
"ruleSet": ["plugin:@ohos/recommended"],
"rules": {
"@ohos/no-any": "error",
"@ohos/no-console": "warn"
}
}
```