Утилита считает строки реального кода в исходных файлах, пропуская:
- Пустые строки
- Строки, целиком занятые комментариями (
//,#,/* ... */) - Строки внутри многострочных блочных комментариев
Строки, содержащие код и комментарий одновременно — учитываются.
Исполняемые файлы для самых популярных платформ доступны на странице Releases. Вы можете скачать подходящую версию и сразу начать использовать:
Просто распакуйте архив и запустите исполняемый файл из терминала / командной строки.
| Язык | Расширения |
|---|---|
| C | .c, .h |
| C++ | .cpp, .cc, .cxx, .hpp |
| Java | .java |
| JavaScript | .js, .jsx |
| TypeScript | .ts, .tsx |
| Go | .go |
| Rust | .rs |
| C# | .cs |
| Python | .py |
Если вы хотите собрать утилиту самостоятельно:
Linux / macOS:
go build -o loc_counter .Windows (расширение .exe обязательно, иначе Go создаст файл без него):
go build -o loc_counter.exe .На Windows замените префикс
./loc_counterна.\loc_counterилиloc_counter.exe.
# Подсчитать все поддерживаемые файлы в директории ./src
./loc_counter ./src
# Без аргументов — попросит ввести директорию (по умолчанию ".")
./loc_counter
# Учитывать только .go и .rs файлы
./loc_counter --ext .go --ext .rs ./src
# Исключить .py файлы
./loc_counter --ext-exclude .py ./src
# --ext-exclude имеет приоритет над --ext
# .py будет проигнорирован, даже если указан в --ext
./loc_counter --ext .go,.py --ext-exclude .py ./src
# Исключить директории (через запятую или отдельными флагами)
./loc_counter --exclude .venv,node_modules,.git ./src
./loc_counter --exclude .venv --exclude node_modules ./src
# Исключить конкретную вложенную директорию
./loc_counter --exclude internal/generated ./srcВ файле main.go найдите переменную knownLanguages и добавьте запись:
".rb": {
SingleLine: []string{"#"},
MultiStart: "=begin",
MultiEnd: "=end",
},Для языков с C-стилем комментариев используйте готовую функцию cStyleConfig().