Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>M Lens — Power Query ToolsNew to Visual Studio Code? Get it now.
M Lens — Power Query Tools

M Lens — Power Query Tools

gabriel

| (0) | Free
Linter, refatoração, extração de queries PBIP/PBIX e preview de dados para Power Query M. Construída sobre a extensão oficial Power Query / M Language.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

M Lens — Power Query Tools

Ferramentas que faltavam para trabalhar com Power Query M no VS Code: linter, extração/sincronização de queries de projetos PBIP, leitura de queries de arquivos PBIX e preview de dados.

O M Lens complementa a extensão oficial Power Query / M Language (instalada automaticamente como dependência) — ela cuida de IntelliSense, highlighting e formatação; o M Lens cuida do resto.

Recursos

🧭 Painel visual

Comando: M Lens: Abrir painel visual.

Uma tela central para usuários que vêm do Power BI e não querem decorar comandos do VS Code. O painel mostra status do workspace, quantidade de queries .pq/.m, arquivos .tmdl, PBIX, fontes encontradas e ações principais como extrair PBIP, pré-visualizar aplicação, aplicar com backup, analisar queries e escanear fontes.

🧾 Arquivos .pq e .m

O M Lens usa .pq como padrão porque é a extensão mais clara para arquivos Power Query soltos e evita conflito com outras linguagens que usam .m. Mesmo assim, a extensão também consegue analisar e escanear arquivos .m quando mlens.files.lintMFiles está ligado.

Comando útil: M Lens: Tratar arquivo .m atual como Power Query.

🧩 Ícones para arquivos Power Query

A extensão inclui o tema de ícones M Lens Icons, com ícones próprios para .pq e .m. Ele é definido como padrão pela extensão quando o usuário ainda não escolheu outro tema de ícones.

Se você já usa outro tema de ícones e quiser trocar manualmente:

  1. Abra a paleta de comandos.
  2. Rode Preferences: File Icon Theme.
  3. Escolha M Lens Icons.

🔍 Linter

Análise contínua de arquivos .pq/.m com regras que o editor do Power BI não oferece:

Regra Padrão O que detecta
unused-step warning Step declarado no let mas nunca referenciado (com quick fix de remoção)
table-buffer info Table.Buffer / List.Buffer / Binary.Buffer — materializa em memória e impede query folding
hardcoded-path warning Caminhos C:\... ou \\servidor\... em literais — quebram ao compartilhar o relatório
generic-step-name hint Nomes gerados pela UI (Custom1, Renamed Columns2...)
sensitive-literal error Possíveis senhas, tokens, API keys ou Bearer tokens hardcoded
localhost-source warning Fontes apontando para localhost / 127.0.0.1
web-contents-options info Web.Contents("...?...") sem RelativePath/Query
remove-columns-risk hint Uso de Table.RemoveColumns quando Table.SelectColumns pode ser mais explícito

Severidades configuráveis em mlens.lint.* (off, hint, info, warning, error).

Comando: M Lens: Analisar todos os arquivos .pq/.m do workspace.

Quick fixes:

  • remover step não usado;
  • abrir renomeação para steps genéricos.

🧹 Organização leve de query

Comando: M Lens: Organizar query atual.

Faz uma limpeza segura no arquivo atual: remove espaços finais, reduz sequências de linhas em branco e garante newline final. A extensão não tenta reescrever semanticamente o M.

📦 Projetos PBIP (round-trip)

Edite as queries do seu relatório com git, multi-cursor e busca de verdade:

  1. Salve o relatório no Power BI Desktop como Projeto Power BI (.pbip) com formato TMDL.
  2. M Lens: Extrair queries do projeto PBIP — todo source = de partition M e expression vira um arquivo .pq em mlens-queries/.
  3. Edite os .pq normalmente (com linter e IntelliSense).
  4. M Lens: Pré-visualizar aplicação PBIP — veja quais queries e .tmdl serão alterados.
  5. M Lens: Aplicar arquivos .pq de volta ao projeto PBIP — o código volta para os .tmdl, preservando o restante do arquivo.

Na reaplicação o bloco é localizado pelo nome (não por número de linha), então edições manuais no .tmdl entre os dois passos não corrompem nada. Observação: o bloco reaplicado é sempre escrito em formato multi-linha com a indentação do arquivo.

Antes de aplicar, o M Lens cria backup dos .tmdl alterados em .mlens/backups/<timestamp>/.

🗺️ Scanner de fontes e dependências

Comandos:

  • M Lens: Escanear fontes de dados do workspace
  • M Lens: Mostrar mapa de dependências das queries
  • M Lens: Diagnosticar workspace

Casos de uso reais:

  • descobrir todos os Sql.Database, Web.Contents, SharePoint.Files, File.Contents, etc.;
  • localizar caminhos locais antes de publicar no Power BI Service;
  • achar possíveis tokens/senhas antes de commitar;
  • entender quais queries dependem de outras queries em projetos grandes.

📄 Arquivos PBIX (somente leitura)

Clique com o botão direito em um .pbix → M Lens: Extrair queries de um arquivo .pbix. O M Lens lê a parte DataMashup e abre o documento de section com todas as queries.

PBIX salvos no formato enhanced metadata (sem DataMashup) não são suportados — salve como .pbip e use o fluxo acima.

Quando isso acontece, o M Lens mostra um guia com o fluxo recomendado: abrir o .pbix no Power BI Desktop, salvar como Power BI Project (.pbip) e então extrair via TMDL.

▶️ Preview de dados (experimental, Windows)

M Lens: Avaliar query atual executa o arquivo .pq aberto via PQTest.exe (componente Microsoft.PowerQuery.SdkTools, distribuído pela extensão Power Query SDK) e mostra o resultado em uma tabela pesquisável, com cabeçalho fixo, ordenação por coluna, resumo de linhas/colunas e painel de erro formatado.

  • O executável é localizado automaticamente; se necessário, configure mlens.preview.pqTestPath.
  • Para SQL, use M Lens: Configurar credenciais SQL do preview e preencha SQL_SERVER, SQL_DB, SQL_USER, SQL_PASS.
  • Para APIs, use M Lens: Gerenciar credenciais do preview e referencie segredos com MLens_GetCredential("Nome").
  • Limite de linhas do preview: mlens.preview.maxRows (padrão 500).

Fluxo SQL simples:

  1. Rode M Lens: Configurar credenciais SQL do preview.
  2. Preencha:
SQL_SERVER = "servidor"
SQL_DB     = "banco"
SQL_USER   = "usuario"
SQL_PASS   = "senha"
  1. Na query, use:
let
    Source = Sql.Database(SQL_SERVER, SQL_DB)
in
    Source

O M Lens substitui placeholders vazios como SQL_SERVER = "" no arquivo temporário do preview e também registra a credencial no cache do PQTest usando --CredentialsFilePath.

Requisitos

  • VS Code 1.85+
  • Extensão oficial Power Query / M Language (instalada automaticamente)
  • Para o preview de dados: Windows + Power Query SDK

Configurações

Configuração Padrão Descrição
mlens.lint.enabled true Liga/desliga o linter
mlens.lint.unusedStep warning Severidade de step não usado
mlens.lint.tableBuffer info Severidade de uso de Buffer
mlens.lint.hardcodedPath warning Severidade de caminho hardcoded
mlens.lint.genericStepName hint Severidade de nome genérico
mlens.lint.sensitiveLiteral error Severidade para possível segredo/token hardcoded
mlens.lint.localhostSource warning Severidade para fonte localhost
mlens.lint.webContentsOptions info Severidade para Web.Contents sem opções estruturadas
mlens.lint.removeColumnsRisk hint Severidade para Table.RemoveColumns
mlens.files.lintMFiles true Inclui arquivos .m nas análises
mlens.preview.pqTestPath "" Caminho do PQTest.exe
mlens.preview.maxRows 500 Linhas máximas no preview
mlens.preview.injectCredentials true Injeta variáveis/credenciais no arquivo temporário do preview

Limitações conhecidas

  • O linter não modela shadowing de identificadores em let aninhados — em casos raros um step usado apenas em escopo sombreado pode ser apontado como não usado.
  • A reaplicação PBIP reescreve o bloco em formato multi-linha (diff maior na primeira aplicação).
  • O mapa de dependências é heurístico: ele cruza nomes de arquivos .pq/.m com referências textuais no código.
  • Preview de dados depende de ferramenta externa da Microsoft (Windows apenas).

Licença

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft