
Toolkit de DevOps no VS Code para equipes Salesforce. Reune em um so lugar: cobertura de Apex direto no package.xml, comparacao da branch com a main, geracao de suite/package das alteracoes, deploy e pipeline guiados de validacao/deploy, diff das fontes com o org (com monitoramento em background e coluna de branch de integracao) e um fluxo completo de logs Apex.

O menu rapido da status bar organiza todos os comandos em 5 grupos: Coverage, Delivery, Org & Change Analysis, Logs e Feedback & Settings. As secoes abaixo seguem a mesma organizacao.
🧪 Coverage
Compara a branch atual com main/master, calcula cobertura de Apex, gera package.xml + ApexTestSuite e decora o manifest com badges de cobertura.
- Show Coverage (
sfdx.wly.compareCurrentBranchWithOther) — painel HTML com status Git/divergencia, cobertura Apex, links para classes de teste relacionadas (via @coverage) e atalhos para abrir arquivos.
- Coverage in package.xml (
sfdx.wly.updateCoverageInPackage) — decora o package.xml com badges de cobertura sem alterar o arquivo.
- Suggest / Apply @coverage annotations (
sfdx.wly.suggestCoverage / sfdx.wly.applyCoverageForClass) — CodeLens em classes de teste Apex que sugere e insere automaticamente as anotacoes @coverage.

🚀 Delivery
Deploy e pipeline guiados usando a suite/package gerados na etapa de Coverage.
- Deploy (
sfdx.wly.deploy) — validate ou deploy direto com sf deploy metadata, exibindo resumo em painel e link para o status no org.
- Pipeline (
sfdx.wly.pipeline) — passo a passo: salva suite/package, compila o manifest (dry-run opcional), roda testes e valida/deploya apos checar divergencias de Git.

🔍 Org & Change Analysis
Compara as fontes locais com o org conectado para garantir que nada saia de sincronia antes do deploy.
- Diff Branch vs Org (
sfdx.wly.diffWithOrg) — compara Apex, Aura, LWC e Flow da branch atual com o org, exibindo estado (Equal / Different / Missing in org) em WebView com link para abrir o arquivo local. Sinaliza o estado do arquivo aberto na status bar e pode adicionar uma coluna comparando uma branch de integracao com o org.
- Diff Branch vs Org Advanced (
sfdx.wly.diffWithOrgAdvanced) — versao avancada que compara a branch atual simultaneamente com o org e ate 5 outras branches Git, em uma tabela matricial.
- Toggle background branch vs org (
sfdx.wly.toggleBackgroundOrgDiff) — liga/desliga o monitoramento automatico do diff com o org, alertando na status bar com icone piscante quando ha diferencas.
- Fontes suportadas: classes Apex (
classes/*.cls), triggers Apex (triggers/*.trigger), bundles Aura (aura/*), bundles LWC (lwc/*) e Flows (flows/*.flow-meta.xml).
Use SFDX Wly: Sources Changed in Two Branches para escolher duas branches locais/remotas e listar somente as fontes Salesforce alteradas nas duas, tomando a branch atualmente checada como base.

📄 Logs
Fluxo completo de logs Apex, com busca, limpeza e download em background.
- Search Apex logs (
sfdx.wly.searchApexLogs) — baixa logs recentes, filtra por texto com destaque e permite abrir o log ou o Replay Debugger.
- Clean Apex logs (org) (
sfdx.wly.cleanApexLogs) — remove logs do org (somente do usuario ou todos).
- Clean Apex logs (local) (
sfdx.wly.cleanLocalApexLogs) — exclui logs baixados em .sfdx/tools/debug/logs.
- Toggle background logs (
sfdx.wly.toggleSilentApexLogs) — liga/desliga o download silencioso de logs em background.

⚙️ Feedback & Settings
- Share an idea (
sfdx.wly.shareIdea) — envia sugestoes/feedback sobre a extensao.
- Settings (
sfdx.wly.openExtensionSettings) — atalho para as configuracoes da extensao.
- Open quick menu from status bar (
sfdx.wly.openStatusBarMenu) — abre o menu rapido acima direto pela status bar.
Pre-requisitos
- Salesforce CLI (
sf ou sfdx) instalado e autenticado no org.
- Repositorio Git com branch
main ou master.
- Projeto Salesforce DX aberto no VS Code (pasta
manifest/force-app).
Instalacao
- Instale na Visual Studio Marketplace.
- Reinicie o VS Code e abra seu projeto Salesforce.
Fluxo rapido de uso
Ctrl+Shift+P → SFDX Wly: Show Coverage para comparar com main, ver cobertura/testes e gerar package.xml + suite.
- Opcional: SFDX Wly: Show Coverage in package.xml para ver badges de cobertura direto no manifest.
- Execute SFDX Wly: Deploy (validate ou deploy) ou SFDX Wly: Pipeline para compilar, testar e enviar usando a suite sugerida.
- Use SFDX Wly: Diff Branch vs Org para verificar se os fontes locais estao sincronizados com o org antes de deployar.
- Para uma visao matricial comparando a branch com o org e outras branches, use SFDX Wly: Diff Branch vs Org Advanced.
- Em classes de teste Apex, clique no CodeLens Suggest @coverage para adicionar automaticamente as anotacoes
@coverage faltantes.
- Para logs, use SFDX Wly: Search Apex logs (e os comandos de limpeza/automacao na mesma secao).
Comandos
| Command Palette |
ID |
Grupo |
O que faz |
| SFDX Wly: Show Coverage |
sfdx.wly.compareCurrentBranchWithOther |
Coverage |
Compara com main/master, mostra cobertura/testes e gera package + suite. |
| SFDX Wly: Show Coverage in package.xml |
sfdx.wly.updateCoverageInPackage |
Coverage |
Decora o package.xml com badges de cobertura Apex. |
| SFDX Wly: Suggest @coverage annotations |
sfdx.wly.suggestCoverage |
Coverage |
Analisa a classe de teste e sugere anotacoes @coverage faltantes. |
| SFDX Wly: Apply @coverage for class |
sfdx.wly.applyCoverageForClass |
Coverage |
Insere a anotacao @coverage sugerida para a classe. |
| SFDX Wly: Deploy |
sfdx.wly.deploy |
Delivery |
Deploy/validate com sf deploy metadata, usando a suite gerada/selecionada. |
| SFDX Wly: Pipeline |
sfdx.wly.pipeline |
Delivery |
Passo a passo: salva suite/package, compila, roda testes e valida/deploya. |
| SFDX Wly: Diff Branch vs Org |
sfdx.wly.diffWithOrg |
Org & Change Analysis |
Compara as fontes Apex/Aura/LWC/Flow da branch atual com o org conectado. |
| SFDX Wly: Diff Branch vs Org Advanced |
sfdx.wly.diffWithOrgAdvanced |
Org & Change Analysis |
Comparacao matricial da branch com o org e ate 5 outras branches. |
| SFDX Wly: Sources Changed in Two Branches |
sfdx.wly.findSourcesChangedInBranches |
Org & Change Analysis |
Lista a intersecao de fontes alteradas nas duas branches selecionadas contra a branch atual. |
| SFDX Wly: Toggle background Diff Branch vs Org |
sfdx.wly.toggleBackgroundOrgDiff |
Org & Change Analysis |
Liga/desliga o monitoramento automatico do diff com o org (status bar). |
| SFDX Wly: Search Apex logs |
sfdx.wly.searchApexLogs |
Logs |
Baixa logs recentes, filtra por texto e permite abrir/depurar. |
| SFDX Wly: Clean salesforce Apex logs |
sfdx.wly.cleanApexLogs |
Logs |
Remove logs do org (somente do usuario ou todos). |
| SFDX Wly: Clean local Apex logs |
sfdx.wly.cleanLocalApexLogs |
Logs |
Exclui logs baixados em .sfdx/tools/debug/logs. |
| SFDX Wly: Toggle background Apex log download |
sfdx.wly.toggleSilentApexLogs |
Logs |
Liga/desliga download silencioso de logs (status bar). |
| SFDX Wly: Share feedback about the extension |
sfdx.wly.shareIdea |
Feedback & Settings |
Envia sugestoes/feedback sobre a extensao. |
| SFDX Wly: Settings |
sfdx.wly.openExtensionSettings |
Feedback & Settings |
Atalho para as configuracoes da extensao. |
| SFDX Wly: Open quick menu from status bar |
sfdx.wly.openStatusBarMenu |
Feedback & Settings |
Menu de acoes da extensao na status bar. |
Configuracoes
| Setting |
Padrao |
Descricao |
sfdxWly.minimumCoveragePercentage |
75 |
Percentual minimo de cobertura para considerar ok (nao pode ser menor que 75). |
sfdxWly.generatePackageXmlAutomatically |
true |
Cria/atualiza o package.xml automaticamente ao gerar a suite. |
sfdxWly.generateTestSuiteAutomatically |
true |
Mantem o ApexTestSuite com os testes encontrados. |
sfdxWly.compareWithMainBranchAutomatically |
true |
Executa a comparacao com main automaticamente. |
sfdxWly.enableBackgroundCoverage |
true |
Atualiza o Show Coverage automaticamente em background. |
sfdxWly.backgroundCoverageIntervalMinutes |
60 |
Intervalo, em minutos, entre as atualizacoes automaticas do Show Coverage. |
sfdxWly.enableBackgroundApexLogs |
false |
Ativa o download silencioso de logs Apex em background. |
sfdxWly.enableBackgroundOrgDiff |
true |
Ativa a comparacao automatica da branch com o org em background, alertando na status bar quando ha diferencas. |
sfdxWly.backgroundOrgDiffIntervalMinutes |
5 |
Intervalo em minutos entre as verificacoes automaticas de diff com o org (minimo 1). |
sfdxWly.showActiveFileOrgDiffStatus |
true |
Mostra na status bar o estado (Equal / Different / Missing) do arquivo aberto em relacao ao org (requer um snapshot de diff disponivel). |
sfdxWly.normalizeApexWhitespaceOnDiff |
true |
Ao comparar Apex com o org, ignora diferencas apenas de formatacao (espacos/quebras, ex. reflows do Prettier) fora de strings. Desative para comparar texto bruto. |
sfdxWly.ignoreFieldSerializationNoiseOnDiff |
(todos selecionados) |
Elementos de field tratados como ruido de serializacao no Org Diff. Desmarque um elemento para que ele volte a ser comparado normalmente. |
sfdxWly.orgDiffIntegrationBranch |
(vazio) |
Branch de integracao onde as features sao mescladas antes do deploy (ex. qa, develop). Quando definida, o diff ganha uma coluna mostrando se essa branch ainda esta alinhada com o org. Vazio desativa a coluna; origin/<branch> tem preferencia quando existe. |
sfdxWly.gitStatusBarPollIntervalSeconds |
20 |
Intervalo em segundos entre as verificacoes da status bar sobre o quanto a branch atual esta a frente/atras da main. Contadores de arquivos conflitantes/divergentes sao mais baratos de manter desatualizados e so atualizam apos rodar "Show Coverage". |
Anotacao @coverage (para CI/CD)
/*
* @coverage AccountController
* @coverage OpportunityHandler
*/
@isTest
private class AccountControllerTest {
// seus testes aqui
}
Use a anotacao para mapear classes Apex aos testes relacionados. Isso permite executar apenas o conjunto afetado em pipelines (Azure DevOps, GitHub Actions, GitLab CI etc.). O CodeLens Suggest @coverage aparece automaticamente em classes de teste e sugere as anotacoes faltantes com base nas classes do projeto.
Estrutura recomendada
manifest/
package.xml
force-app/
main/
default/
classes/
AccountController.cls
AccountControllerTest.cls
Contribuicao
- Abra issues e pull requests no repositorio.
- Duvidas ou sugestoes: wlysses@gmail.com
Licenca
MIT. Consulte o arquivo LICENSE.