Счётчик может работать последовательно и при этом отвечать на более узкий вопрос, чем кажется по названию. SourceTally считает физической строкой текст до LF, CRLF или CR и последний сегмент без перевода строки. Строки только из пробелов отмечаются отдельно. Правило воспроизводимо для обычного UTF-8-совместимого текста, но не определяет операторы, исполняемые пути, объявления, комментарии, генерируемый код или ценность.

Физические строки описывают разметку

Один оператор может занимать одну строку или двадцать после форматирования. Минифицированный bundle может содержать много поведения в одной физической строке. Документация, конфигурация, тестовые фикстуры, сгенерированные клиенты и данные могут добавить тысячи строк без новой логики. Используйте итог как инвентаризацию снимка, а не оценку способности разработчиков.

Логический SLOC требует грамматики

Логическая строка обычно означает конструкцию языка, а не визуальный ряд. Точки с запятой, значимые отступы, многострочные выражения, макросы, шаблоны, встроенные языки, строки и препроцессор делают определение зависимым от языка. SourceTally не выдаёт разбиение текста или поиск знаков за единый точный логический подсчёт для десятков языков.

Комментарии требуют лексического контекста

Одни символы могут начинать комментарий, находиться в строке, регулярном выражении или встроенном языке. Блочный комментарий пересекает куски и строки. Документирующий комментарий бывает кодовой документацией и частью источника. Надёжное разделение требует проверенных лексеров и явной политики, поэтому первая версия показывает только все, пустые и непустые физические строки.

Сравнивайте одинаково настроенные запуски

Запишите коммит или локальный снимок, исключения, ошибки файлов, кодировки, выбор генерируемых файлов и версию инструмента. Разница осмысленна только при одинаковых условиях. И тогда рост может означать тесты, безопасную валидацию, документацию, генерацию интерфейсов или дублирование. Используйте число как сигнал для проверки, а не самостоятельную цель эффективности.