A métrica de linhas de código (LOC) é frequentemente utilizada para avaliar o tamanho e a complexidade de uma base de código. Existem diversas abordagens e ferramentas disponíveis para realizar essa contagem de forma automatizada em diferentes sistemas operacionais e ambientes de desenvolvimento.
Utilizando o cloc no Terminal
O cloc (Count Lines of Code) é um utilitário de linha de comando escrito em Perl, amplamente utilizado para contabilizar linhas em branco, comentários e código físico em múltiplas linguagens de programação.
Pré-requisitos e Instalação
Como a ferramenta é baseada em Perl, é necessário ter o interpretador instalado no sistema. A verificação pode ser feita através do comando:
perl -v
A instalação do cloc varia de acordo com o gerenciador de pacotes do sistema operacional:
# Debian / Ubuntu
sudo apt-get install cloc
# macOS (via Homebrew)
brew install cloc
# Node.js (via NPM)
npm install -g cloc
# Arch Linux
sudo pacman -S cloc
# Alpine Linux
sudo apk add cloc
Em ambientes restritos sem acesso à internet, é possível baixar o script principal diretamente do repositório oficial no GitHub. Basta salvar o arquivo, conceder permissão de execução (chmod +x cloc) e criar um link simbólico para um diretório presente no $PATH.
Execução e Análise
A execução requer a especificação do diretório alvo. O ponto (.) é utilizado para analisar o diretório atual.
# Analisando o diretório atual
cloc .
# Analisando um diretório específico e excluindo pastas de teste
cloc ./src --exclude-dir=tests,build
O resultado gera uma tabela estruturada que separa a quantidade de arquivos, linhas em branco, comentários e código efetivo, agrupando os dados por linguagem detectada.
Ferramentas Gráficas para Windows
Para usuários que preferem interfaces gráficas no ambiente Windows, utilitários visuais como o SourceCounter oferecem uma alternativa ao terminal.
- Adicione o diretório do projeto através do seletor de pastas na interface principal.
- Configure as extensões de arquivo a serem analisadas. É necessário adicionar manualmente extensões específicas (como
.jsx,.tsou.vue) caso não estejam listadas por padrão. - Inicie o processo de análise através do menu superior ou atalhos de teclado.
- A interface exibirá um relatório consolidado com a sumarização de código, comentários e linhas vazias, permitindo filtrar os resultados por data de modificação dos arquivos.
Extensões para Editores de Código
Ambientes de desenvolvimento integrado e editores modernos possuem ecossistemas de extensões que facilitam a extração de métricas sem a necessidade de sair da ferramenta. No Visual Studio Code, a extensão VSCode Counter é uma opção robusta.
Configuração e Uso
Após instalar a extensão através do marketplace do VS Code, o processo de contagem é realizado via Paleta de Comandos:
- Abra a Paleta de Comandos utilizando
Ctrl+Shift+P(ouCmd+Shift+Pno macOS). - Digite e selecione o comando
VSCodeCounter: Count lines in directory. - Confirme o diretório raiz do workspace no prompt de entrada.
A extensão processará os arquivos e gerará uma nova aba contendo tabelas detalhadas e gráficos de distribuição de linhas por arquivo, linguagem e tipo de conteúdo (código, comentário ou linha em branco).
Abordagens Nativas com Comanods Unix
Em sistemas baseados em Unix, é possível combinar utilitários nativos para realizar contagens rápidas sem a necessidade de instalar softwares de terceiros. A combinação de find com wc permite filtragens precisas.
# Contando linhas de arquivos Python, excluindo diretórios ocultos e virtual environments
find ./src -type f \( -name "*.py" -o -name "*.pyi" \) -not -path "*/\.*" -not -path "*/venv/*" -exec cat {} + | wc -l
# Utilizando ripgrep (rg) para uma contagem mais performática em repositórios grandes
rg --files --type py | xargs wc -l | tail -n 1