Problema
O jcode-harness renderiza markdown via src/tui/markdown.rs e jcode-tui-markdown, mas o syntax highlighting em code blocks e basico (apenas coloracao de indentacao, sem analise sintatica real por linguagem).
O que precisa ser feito
1. Syntax highlighting real
- Integrar tree-sitter ou syntect para highlighting por linguagem
- Suportar linguagens comuns: rust, python, typescript, javascript, go, bash, json, yaml, toml, sql, html, css, diff
- Detectar linguagem do fence:
rust, python, ```typescript, etc.
- Fallback para texto simples se linguagem nao reconhecida
2. Tabelas Markdown
- Renderizar tabelas com bordas Unicode:
┌──────────┬──────────┬──────────┐
│ Coluna 1 │ Coluna 2 │ Coluna 3 │
├──────────┼──────────┼──────────┤
│ valor │ valor │ valor │
└──────────┴──────────┴──────────┘
- Suportar alinhamento (:---, :---:, ---:)
- Truncar colunas largas com "..."
- Fallback para lista de key-value em terminais estreitos
3. Blockquotes estilizados
- Barra vertical colorida a esquerda (│ ou ┃)
- Cor diferente do texto normal
- Suportar nested blockquotes (> > texto)
4. Checkboxes renderizadas
-
-
- Cores diferentes para cada estado
5. Links clicaveis
- Detectar URLs text e urls nuas
- Sublinhado ou cor diferente para indicar clicaveis
- Ctrl+Click para abrir no navegador
- Hover mostra URL completa
Dependencias potenciais
- tree-sitter + tree-sitter-highlight (recomendado, mesma stack do zed)
- ou syntect (mais maduro, usado pelo bat)
- unicode-width (ja usado)
Arquivos a modificar
- src/tui/markdown.rs — adicionar highlighting, tabelas, blockquotes
- crates/jcode-tui-markdown/ — renderizacao de code blocks com syntect
- crates/jcode-tui-render/src/chrome.rs — helpers de borda para tabelas
- Cargo.toml — adicionar dependencia tree-sitter ou syntect
Problema
O jcode-harness renderiza markdown via src/tui/markdown.rs e jcode-tui-markdown, mas o syntax highlighting em code blocks e basico (apenas coloracao de indentacao, sem analise sintatica real por linguagem).
O que precisa ser feito
1. Syntax highlighting real
rust,python, ```typescript, etc.2. Tabelas Markdown
3. Blockquotes estilizados
4. Checkboxes renderizadas
5. Links clicaveis
Dependencias potenciais
Arquivos a modificar