Skip to content
EN

Cópia estática

Copiado de docs/guides/pt/syntax.md em https://github.com/poppy-team/oride (MIT). Fixado na revisão 1cd515630b8ceb57777d466bee4970fe7c2e30e0, blob 56ff14947f010361ec7b89f3e2b6f9f2dd4fbaac. O repositório de origem permanece canônico; esta cópia é atualizada por um pull request de sincronização, não em tempo real.

Syntax highlight ​

Oride usa tree-sitter (e pipeline MD próprio) para colorir o buffer ativo.

Linguagens first-class ​

Normativo: docs/planning/alpha6-roadmap.md §3.

LanguageIdExtensõesGrammar / motorEstado
rust.rstree-sitter-rust (estático)nativo estático
c.c, .htree-sitter-c (estático)nativo estático
bash.sh, .bash, .zshtree-sitter-bash (estático)nativo estático
markdown.md, …tree-sitter-md + inject (estático)nativo estático
ori / ori-lang.orlfallback léxico contidolexical
python.py, .pywdinâmico (.so / plugin) + fallback léxicoplugin / fallback
javascript.js, .mjs, .cjsdinâmico (.so / plugin) + fallback léxicoplugin / fallback
typescript.tsdinâmico (.so / plugin) + fallback léxicoplugin / fallback
typescriptreact.tsxdinâmico (.so / plugin) + fallback léxicoplugin / fallback
ruby.rb, .rake, …dinâmico (.so / plugin) + fallback léxicoplugin / fallback
html.html, .htmdinâmico (.so / plugin) + fallback léxicoplugin / fallback
css.cssdinâmico (.so / plugin) + fallback léxicoplugin / fallback
nim.nim, …fallback léxico contidolexical
d.d, .difallback léxico contidolexical
lua.luafallback léxico contidolexical
oriscript.oristree-sitter-oriscript (estático legado)legado/estático
plainoutras—sem highlight

A linguagem ativa aparece na status line. Gramáticas dinâmicas são carregadas de ~/.config/oride/grammars/, .oride/grammars/ ou plugins instalados.

Fence inject (MD): o conteúdo de ```lang recebe highlight da linguagem. Aliases disponíveis incluem oris/oriscript, rust/rs, c/h, bash/sh/shell, python/py, js/javascript, ts/typescript, tsx, ruby/rb, d/dlang, lua, nim, html e css.

Como funciona ​

  1. detect_language(path) escolhe o id.
  2. HighlightEngine reparseia quando o texto muda.
  3. Nós do AST → HighlightKind → cores em UiTheme.syntax.
  4. Markdown blocks usam grammar MD; inlines e injects complementam.

Crates ​

  • oride-syntax — engine + kinds + detecção + MD preview lines
  • tree-sitter-oriscript — binding da grammar legada OriScript (compatibilidade)
  • grammars externas via crates tree-sitter-*

Limitações ​

  • Reparse completo por edit (não incremental) — ok para arquivos médios
  • Cores de syntax no TOML: parcial (E1.4 no roadmap)
  • Nim e Ori têm highlight léxico de keywords, tipos, funções, strings, números e comentários; recursos sintáticos mais profundos dependem de grammars estáveis
  • Semantic tokens / multi-LSP: L2 no roadmap (opt-in)

Validação ​

bash
cargo test -p oride-syntax