Uma extensão do VS Code para formatação e identação automática de código OpenEdge ABL (Progress 4GL).
Funcionalidades
- Formatação Automática: Formata documentos ABL inteiros com
Ctrl+Shift+I
(Windows/Linux) ou Cmd+Shift+I
(Mac)
- Formatação de Seleção: Formata apenas o código selecionado
- Identação Inteligente: Reconhece estruturas ABL como procedures, functions, methods, loops e condicionais
- Suporte a Múltiplas Extensões: Funciona com arquivos
.p
, .w
, .cls
, .i
Estruturas Suportadas
A extensão reconhece e formata adequadamente as seguintes estruturas ABL:
Definições
define variable x as integer.
define buffer buf for customer.
define temp-table tt-temp
field nome as character.
Procedures e Functions
procedure exemplo:
define parameter p-valor as integer.
if p-valor > 0 then do:
message "Valor positivo".
end.
end procedure.
Estruturas de Controle
for each customer no-lock:
if customer.balance > 1000 then do:
message customer.name.
end.
else do:
message "Cliente com baixo saldo".
end.
end.
Classes e Methods
class MinhaClasse:
method public void exemplo():
define variable i as integer.
do i = 1 to 10:
message i.
end.
end method.
end class.
Como Usar
- Abra um arquivo ABL (
.p
, .w
, .cls
, .i
)
- Use
Ctrl+Shift+I
(Windows/Linux) ou Cmd+Shift+I
(Mac)
- Ou use a paleta de comandos (
Ctrl+Shift+P
) e digite "Format Document"
- Selecione o código que deseja formatar
- Use
Ctrl+K Ctrl+F
(Windows/Linux) ou Cmd+K Cmd+F
(Mac)
- Ou clique com botão direito e selecione "Format Selection"
Comando Personalizado
Use a paleta de comandos (Ctrl+Shift+P
) e digite "Format ABL Document"
Configurações
A extensão respeita as configurações de formatação do VS Code:
{
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.formatOnSave": true,
"editor.formatOnType": true
}
Instalação para Desenvolvimento
- Clone este repositório
- Execute
npm install
para instalar dependências
- Abra o projeto no VS Code
- Pressione
F5
para executar a extensão em modo de desenvolvimento
Build e Package
# Compilar a extensão
npm run compile
# Criar package para instalação
npm run package
Estrutura do Projeto
.
├── src/
│ ├── extension.ts # Ponto de entrada da extensão
│ ├── ablFormatter.ts # Lógica de formatação ABL
│ └── test/
│ └── extension.test.ts # Testes da extensão
├── language-configuration.json # Configuração da linguagem ABL
├── package.json # Manifesto da extensão
└── README.md # Este arquivo
Contribuição
Contribuições são bem-vindas! Por favor:
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-funcionalidade
)
- Commit suas mudanças (
git commit -am 'Adiciona nova funcionalidade'
)
- Push para a branch (
git push origin feature/nova-funcionalidade
)
- Abra um Pull Request
Licença
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Changelog
1.0.0
- Versão inicial
- Formatação básica de documentos ABL
- Suporte para structures, procedures, functions, loops e condicionais
- Formatação de seleção