M Lens
Extensão gratuita para o VS Code que tira o Power Query de dentro do Power BI Desktop, com linter, preview dos dados e gravação segura de volta no projeto.
- Contexto
- Publicada no Marketplace do VS Code
- Início
- Tipo
- Ferramenta de dev
Em números
- instalações no Marketplace do VS Code
- 141
- regras de linter para Power Query M
- 8
- textos traduzidos entre inglês e português
- 200
- linhas de TypeScript
- 4,6 mil
Contado no código em out 2026.
Arquitetura
Por que eu fiz
De vez em quando eu preciso mexer em relatórios do Power BI no trabalho, e editar Power Query pelo Power BI Desktop é sofrido: uma janela pequena, sem busca de verdade, sem git, sem jeito de revisar o que mudou. O formato .pbip guarda o modelo em texto, então a peça que faltava era uma ferramenta para editar esse texto com conforto e devolver sem quebrar nada.
O que ela faz
- Extrai cada query dos arquivos .tmdl para um .pq e grava de volta só o que mudou, localizando o bloco pelo nome e preservando metadados e quebras de linha.
- Linter em cima da AST do parser oficial da Microsoft, com correções rápidas: step sem uso, nomes genéricos (em inglês e português), Table.Buffer, caminhos fixos e possíveis segredos.
- Preview dos dados rodando o PQTest do Power Query SDK, com credenciais guardadas no cofre do VS Code e restritas ao servidor de origem.
- Diff lado a lado antes de aplicar e backup automático de cada arquivo alterado.
- Barra lateral nativa e painéis que seguem o tema, em inglês e português.
O que eu aprendi
A primeira versão publicada tinha um bug sério: no layout que o Power BI Desktop grava de verdade, ela lia as queries compartilhadas como vazias, e aplicar sem editar nada estragava os metadados do modelo. Os testes passavam porque usavam um exemplo que eu mesmo tinha escrito. Corrigi testando contra arquivos reais, e hoje todo caso novo entra como teste antes da correção.
A outra lição foi de produto: a extensão funcionava, mas era difícil de usar. Ela trocava o tema de ícones de quem instalava, só falava português e tinha 16 comandos. A versão 0.2 é mais sobre tirar coisa do caminho do que sobre feature nova.