LoChat/config/checkstyle/README.md

115 lines
3.5 KiB
Markdown

# Checkstyle Configuration | Конфигурация Checkstyle
This project uses **Google Java Style** for code quality enforcement.
Проект использует **Google Java Style** для контроля качества кода.
---
## 🇬🇧 English
### Rules
Based on [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html):
| Category | Rule | Value |
|----------|------|-------|
| **Indentation** | Basic offset | 2 spaces |
| **Indentation** | Continuation indent | 4 spaces |
| **Line length** | Max characters | 100 |
| **File length** | Max lines | 600 |
| **Method length** | Max lines | 60 |
| **Complexity** | Cyclomatic complexity | ≤ 15 |
| **Parameters** | Max per method | 7 |
| **Nested if** | Max depth | 3 |
| **Nested try** | Max depth | 2 |
### Key Requirements
- **Spaces only** — no tabs
- **Braces** — required for `if`, `for`, `while`, `do`
- **Imports** — no wildcards, no unused imports, grouped ordering
- **Javadoc** — required on all public/protected methods and types
- **Naming** — camelCase, no abbreviations (except allowed: IO, URL, HTML, etc.)
### Running
```bash
# Full check
./gradlew check
# Only LoChat
./gradlew checkstyleMain
```
### Reports
After check, reports are available at:
- `build/reports/checkstyle/main.html`
### IntelliJ IDEA Setup
1. Install "CheckStyle-IDEA" plugin
2. Settings → Tools → Checkstyle
3. Add configuration: `config/checkstyle/checkstyle.xml`
---
## 🇷🇺 Русский
### Правила
Основаны на [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html):
| Категория | Правило | Значение |
|-----------|---------|----------|
| **Отступы** | Основной | 2 пробела |
| **Отступы** | Перенос строки | 4 пробела |
| **Длина строки** | Максимум | 100 символов |
| **Длина файла** | Максимум | 600 строк |
| **Длина метода** | Максимум | 60 строк |
| **Сложность** | Цикломатическая | ≤ 15 |
| **Параметры** | Макс. на метод | 7 |
| **Вложенность if** | Макс. глубина | 3 |
| **Вложенность try** | Макс. глубина | 2 |
### Ключевые требования
- **Только пробелы** — никаких табуляций
- **Скобки** — обязательны для `if`, `for`, `while`, `do`
- **Импорты** — без *-импортов, без неиспользуемых, группировка
- **Javadoc** — обязателен для всех public/protected методов и типов
- **Именование** — camelCase, без сокращений (кроме разрешённых: IO, URL, HTML и т.д.)
### Запуск
```bash
# Полная проверка
./gradlew check
# Только LoChat
./gradlew checkstyleMain
```
### Отчёты
После проверки отчёты доступны в:
- `build/reports/checkstyle/main.html`
### Настройка IntelliJ IDEA
1. Установите плагин "CheckStyle-IDEA"
2. Settings → Tools → Checkstyle
3. Добавьте конфигурацию: `config/checkstyle/checkstyle.xml`
### Disabling Checks | Отключение проверок
```java
// CHECKSTYLE:OFF
public class MyClass {
// code without checks
}
// CHECKSTYLE:ON
// Per line:
private static final int MAGIC = 42; // CHECKSTYLE IGNORE MagicNumber
```