@@ -15,14 +15,43 @@ LogLua é um sistema de logging modular e minimalista para Lua com:
1515
1616```
1717loglua/
18- ├── init.lua # API pública principal
19- ├── config.lua # Estado interno (mensagens, seções, contadores, modo live)
20- ├── formatter.lua # Formatação de mensagens, cores ANSI, agrupamento
21- ├── file_handler.lua # Operações de arquivo (I/O)
22- ├── help.lua # Sistema de ajuda integrado (log.help())
23- └── test.lua # Testes automatizados
18+ ├── init.lua # API pública principal
19+ ├── config.lua # Estado interno (mensagens, seções, contadores, modo live)
20+ ├── formatter.lua # Formatação de mensagens, cores ANSI, agrupamento
21+ ├── file_handler.lua # Operações de arquivo (I/O)
22+ ├── help.lua # Sistema de ajuda integrado (log.help())
23+ ├── constants/
24+ │ └── ANSIColors.lua # Constantes de cores ANSI
25+ └── utils/
26+ └── formatIndex.lua # Utilitário de formatação de índice
27+
28+ library/ # Arquivos de definição de tipos (LuaLS / lua-language-server)
29+ ├── loglua.lua # Definições da API pública (logluaLib)
30+ ├── config.lua # Definições do módulo config (loglua.configLib)
31+ ├── formatter.lua # Definições do módulo formatter
32+ └── help.lua # Definições do módulo help
33+
34+ spec/
35+ └── loglua_spec.lua # Testes automatizados (busted)
36+
37+ rockspecs/ # Rockspecs para publicação no LuaRocks
2438```
2539
40+ ## Importações
41+
42+ Os módulos usam importações diretas com caminho completo:
43+ ``` lua
44+ local config = require (" loglua.config" )
45+ ```
46+ ** NÃO** usar resolução dinâmica de path com ` (...) ` .
47+
48+ ## Arquivos de Definição (library/)
49+
50+ - Usados pelo lua-language-server para autocomplete e type-checking
51+ - Seguem o padrão ` ---@meta ` e ` ---@class `
52+ - Cada função deve ter: ` ---@type function ` , ` ---@param ` , ` ---@return ` e um bloco ` example: ` com código Lua
53+ - Não colocar anotações ` ---@type ` no código fonte (init.lua, config.lua, etc) — as definições ficam apenas em ` library/ `
54+
2655## Ao Implementar uma Nova Feature
2756
2857### Antes
@@ -31,17 +60,19 @@ loglua/
3160- Verificar se a feature não conflita com funcionalidades existentes
3261
3362### Durante
34- - Seguir o padrão de documentação LDoc nos comentários
3563- Manter a arquitetura modular (config para estado, formatter para formatação, etc)
3664- Adicionar funções públicas no init.lua, lógica interna nos outros módulos
65+ - Atualizar os arquivos de definição em ` library/ ` com tipos e exemplos
3766
3867### Depois
39- - Rodar os testes: ` cd loglua/loglua && lua test .lua`
40- - Adicionar novos testes para a feature em test .lua
68+ - Rodar os testes: ` busted spec/loglua_spec .lua`
69+ - Adicionar novos testes para a feature em spec/loglua_spec .lua
4170- Atualizar documentação:
4271 - help.lua (adicionar tópico se necessário)
72+ - library/ (definições de tipos e exemplos)
4373 - README.md (inglês)
4474 - README.pt-BR.md (português)
75+ - README.es.md (espanhol)
4576- Se tudo passar, fazer upload
4677
4778## Upload / Release
@@ -76,7 +107,7 @@ Padrão: `X.Y-Z` (ex: 1.4-1)
76107
77108### Logging
78109- ` log(...) ` / ` log.add(...) ` - adiciona mensagem
79- - ` log.debug(...) ` - mensagem de debug (requer debugMode)
110+ - ` log.debug(...) ` - mensagem de debug (requer debugMode, retorna imediatamente se inativo )
80111- ` log.error(...) ` - mensagem de erro
81112
82113### Seções
@@ -102,6 +133,7 @@ Padrão: `X.Y-Z` (ex: 1.4-1)
102133### Configuração
103134- ` log.activateDebugMode() ` / ` log.deactivateDebugMode() `
104135- ` log.checkDebugMode() `
136+ - ` log.setHandlerHeader(func) ` - customiza header do log
105137- ` log.clear() ` - limpa tudo
106138
107139### Ajuda
@@ -119,17 +151,17 @@ Padrão: `X.Y-Z` (ex: 1.4-1)
119151
120152Rodar testes:
121153``` bash
122- cd loglua/loglua && lua test .lua
154+ busted spec/loglua_spec .lua
123155```
124156
125- Os testes usam cores ANSI e verificam:
157+ Os testes (busted) verificam:
126158- Logging básico
127159- Sistema de seções
128160- log.inSection()
129161- Seção padrão
130- - Modo debug
162+ - Modo debug (começa desativado, não adiciona mensagem quando inativo)
131163- Contador de erros
132164- Função clear()
133165- Chamada direta log()
134- - Modo live
166+ - Modo live (merge de grupos)
135167- Salvamento em arquivo
0 commit comments