Mudando um pouco o estilo do blog que era postar coisas técnicas, apesar de não ter feito isso ultimamente.

Recentemente tive que implementar um driver para um projeto do curso de Sistemas Operacionais que estou fazendo. O sistema operacional estudado é o Minix 3 que é opensource é apresenta elementos básicos de sistemas operacionais.

Entretanto, minha experência com C é muito básica, e é um tanto chato ficar varrendo arquivos e arquivos, mesmo usando o visual studio, para ir atrás de referências ou coisas do tipo. O intellisense para C/C++ não é tão bom como para C#, mas ajuda bastante.

O que precisei fazer era ficar buscando palavras ou códigos que usassem determinada rotina para fazer inspeção de código e entender como o mecanismo funciona.

Apesar de Visual Studio ter o "Find All References" ele não funciona muito bem. Tem também a opção de usar o Ctrl+F e fazer um "bookmark all" de todas as buscas, mas não sei por que diabos ele não funciona para buscam no projeto, ele só vale para o "Current Document".

Para o pessoal do linux os shells scripts (ou qualquer outro script) são poderosos. O pessoal do Windows é meio ignorante com linha de comando. Eu estou tentando usar o shell mas as vezes demoro muito para fazer coisas simples, mas é so tentando que se aprende. Nós sempre precisamos de uma alternativa gráfica, por que é muito mais simples e prático.

Pensando nisso estou escrevendo sobre o Windows Grep ou wingrep que faz esse serviço para nós.

mainwindow1

Você coloca os diretório de onde quer buscar e escreve a expressão regular que deseja como filtro e esperar ele fazer a busca. Uma coisa muito boa é que ele lista arquivo por arquivo e mostra trechos de código do arquivo. Vale a pena.

Existe também uma versão do grep para console, não tem muito segredo o código, mas coisa que notei que o windows não vem! Eu usava no meu PC achando que era nativo do windows até usar outro computador e não existe o comando. No lugar dele usa-se o find.

Nota. Não estou ganhando nada pela divulgação, apenas sugerindo uma ferramenta que todo mundo deveria ter.

Até um próximo post!