-
Notifications
You must be signed in to change notification settings - Fork 0
Como contribuir
github-actions[bot] edited this page Sep 4, 2026
·
2 revisions
Guia para configurar o ambiente de desenvolvimento e enviar contribuições.
-
Node.js 22+ (
.nvmrcaponta para 24; CI testa 22/24 — Node 20 atingiu EOL) - npm (vem com o Node)
- Git
- (Opcional) Oracle Database + utPLSQL para testes de integração
# Clone o repositório
git clone https://github.com/thepaneb/vscode-utplsql.git
cd vscode-utplsql
# Instale as dependências
npm install
# Compile o TypeScript
npm run compilevscode-utplsql/
├── src/
│ ├── extension.ts ← orquestrador (entry point)
│ ├── runner.ts ← executeRun (CLI) + wrappers applyResults/applyCoverage
│ ├── oracleRunner.ts ← executeRunOracle (streaming + pool) + descoberta de schema utPLSQL
│ ├── results.ts ← funções canônicas de resultado/cobertura (PRD-44)
│ ├── config.ts ← leitura de settings + env vars + resolveConnection
│ ├── discovery.ts ← findFiles + parse + descoberta via DB (PRD-43)
│ ├── invocation.ts ← buildInvocation (launcher/java)
│ ├── cli.ts ← executa processo CLI
│ ├── cliEncoding.ts ← decode de output (iconv)
│ ├── suiteParser.ts ← regex %suite/%test + annotations (puro)
│ ├── junit.ts ← parse XML JUnit + stack frames (puro)
│ ├── cobertura.ts ← parse XML Cobertura (puro)
│ ├── cliInfo.ts ← parse utplsql info (puro)
│ ├── cliReporters.ts ← parse utplsql reporters (puro)
│ ├── matching.ts ← filtro URI/pasta + matching resultado→teste (puro)
│ ├── codelens.ts ← parseCodeLensItems (puro) + CodeLensProvider
│ ├── compilationDiagnostics.ts ← erros PL/SQL no editor
│ ├── quickfix.ts ← SetupValidator + Code Actions
│ ├── decorations.ts ← decorações inline de pass/fail
│ ├── statusBar.ts ← indicador de status
│ ├── state.ts ← estado da sessão (puro)
│ ├── types.ts ← interfaces (type-only)
│ └── test/
│ ├── unit/ ← testes com node --test
│ └── integration/ ← testes com @vscode/test-cli
├── dist/ ← bundle esbuild (gerado; main = dist/extension.js)
├── docs/
│ ├── prd/ ← Product Requirements Documents
│ ├── functional/ ← especificação funcional
│ └── wiki/ ← conteúdo do wiki
├── .github/workflows/ ← CI/CD
├── esbuild.config.mjs ← bundling (PRD-45)
├── package.json
├── tsconfig.json
├── biome.json ← linter + formatter
└── README.md
npm install # dependências
npm run compile # tsc → out/
npm run watch # compilação incremental
npm run lint # biome check src/
npm run lint:fix # biome check --write src/
npm run format # biome format --write src/
npm run test:unit # pretest:unit (compile+lint) → node scripts/run-tests.cjs
npm run test:integration # pretest:integration (compile+bundle) → vscode-test
npm run test:coverage # compile → c8 node --test (thresholds 65/80/70)
npm test # = test:unit
npm run bundle # esbuild → dist/ (main real da extensão)
npm run package # compile + bundle + vsce package → .vsix
npm run sync-prds # sincroniza PRDs com issues do GitHubRodar um único teste unitário:
node --test out/test/unit/junit.test.js
node --test --test-name-pattern "duração" out/test/unit/**/*.test.jsPressione F5 no VSCode (.vscode/launch.json configurado) para abrir
uma instância do Extension Development Host com a extensão carregada.
Você pode abrir um projeto PL/SQL nessa janela e testar a extensão
interativamente.

Crie um arquivo .env na raiz (gitignorado):
UTPLSQL_CONN=seu_user/senha@//host:1521/service
UTPLSQL_CLI_PATH=/caminho/para/utplsql
UTPLSQL_CLI_HOME=/caminho/para/utplsql-cliRode:
npm run test:integrationSem as env vars, os testes com banco (describeDB) são automaticamente
pulados.
Estilo definido no biome.json e aplicado via npm run lint + npm run format:
- Indent: 2 espaços
- Line width: 100 caracteres
- Quotes: single (
') - Semicolons: sempre (
;) - Trailing commas: sempre (
,) - Linter: preset recommended
- Fork o repositório
- Crie uma branch:
git checkout -b feature/minha-mudanca - Faça as alterações seguindo as convenções
- Rode
npm run lintenpm test— devem passar - Commit com mensagem clara
- Push e abra um Pull Request para
main
Formato: <tipo>: <descrição> [(PRD-NN)]
feat: adiciona suporte a reporters dinâmicos (PRD-10)
fix: corrige mapeamento de cobertura para Windows
docs: atualiza seção de troubleshooting
Se a mudança conclui um PRD, referencie Closes #N no corpo do commit/PR.
- Novas settings → adicione à tabela de configuração do README e à página Configurações do wiki
- Novos comandos → adicione à seção Comandos do README e à página Comandos do wiki
- Novos comportamentos → se relevante para troubleshooting, adicione à página Troubleshooting do wiki
- Mudanças de arquitetura → atualize a página Arquitetura
O wiki é sincronizado automaticamente via workflow ao fazer push na branch
main (arquivos em docs/wiki/).
- Getting Started
- Usage
- Advanced Tools
- Reference
- Development
- Help