GWEB: ferramenta de programação literária para a linguagem Go
(github.com/sjnam)GWEB é um sistema de programação literária (Literate Programming) para a linguagem Go. Ele foi desenvolvido modelando de perto a estrutura do CWEB de Donald Knuth.
Os desenvolvedores escrevem, em um único arquivo-fonte .w, tanto o documento em TeX (explicações) quanto o código Go. Esse arquivo é então convertido em dois resultados, um para máquinas e outro para humanos.
Ferramentas e recursos principais
O sistema GWEB funciona basicamente com dois comandos principais.
- gtangle: exclui as explicações do documento, reúne apenas as seções de código Go e gera um arquivo
.gocompilável. Na saída, o código é formatado automaticamente no estilogofmt. - gweave: gera um documento tipograficamente bonito e fácil de ler (
.tex➡️ PDF). Palavras reservadas aparecem em negrito, identificadores em itálico, e um índice de referências cruzadas é gerado automaticamente.
Principais características e vantagens
- Formato intuitivo: oferece suporte nativo à diretiva
//line, permitindo indicar com precisão a linha no arquivo-fonte.w, e não no arquivo.go, quando ocorre um erro de compilação ou um panic. - Sistema self-hosting: o próprio GWEB também foi desenvolvido no estilo de programação literária. Os arquivos
.wdentro da pastalit/são as verdadeiras fontes originais do GWEB. - Suporte a editores: também fornece configurações de syntax highlighting para usuários de VS Code, Vim e Emacs.
Com o GWEB, é possível registrar e gerenciar com elegância a intenção de projeto e os algoritmos de projetos Go complexos, como se você estivesse escrevendo um livro.
Ainda não há comentários.