[Fikir] Syntax Highlighting (Sözdizimi Renklendirme) Grameri #92

Open
opened 2026-06-14 22:14:06 +03:00 by saqut · 0 comments
Owner

Giriş (Nedir, Neden Önemli?)

Editörlerde .sqt dosyalarının renkli görünmesi (anahtar kelimeler, string'ler, yorumlar farklı renkte) geliştirici deneyiminin en temel parçalarından biri — ve LSP'den bağımsız, çok daha basit bir kazanım.


Gelişme (Olası Yaklaşımlar)

  • TextMate grameri (VS Code'un kullandığı, regex-tabanlı .tmLanguage.json): saQut'un tokenizer'ındaki (Tokenizer) 6 token tipinden (docs belgelerine göre) yola çıkarak basit bir regex seti yazılabilir — derleyiciden bağımsız, statik bir dosya.
  • Tree-sitter grameri: Daha güçlü (gerçek bir parser üretir, hata-toleranslı), ama saQut'un kendi Pratt parser'ından ayrı bir gramer tanımı gerektirir — bakım yükü iki ayrı "dil tanımı" demektir.
  • v0 önerisi: TextMate grameri (en düşük efor, en hızlı görsel kazanım) — saqut tokens çıktısı referans alınarak anahtar kelimeler/operatörler/literal'ler renklendirilir.

Açık Sorular

  • Bu gramer, tokenizer'daki token tanımları değiştiğinde elle senkronize mi tutulacak, yoksa saqut tokens --dump-grammar gibi bir komutla otomatik üretilebilir mi (programlanabilir derleyici felsefesiyle çok uyumlu bir fikir)?
  • Hedef editör önceliği ne olacak — VS Code (TextMate) mı, Neovim/Helix (Tree-sitter ekosistemi daha güçlü) mı?

İmza/Yorum: Bu, listedeki en düşük efor / en yüksek "keyif" oranına sahip issue'lardan biri — derleyici bitmeden bile, sadece tokenizer çıktısından üretilebilir.

### Giriş (Nedir, Neden Önemli?) Editörlerde `.sqt` dosyalarının renkli görünmesi (anahtar kelimeler, string'ler, yorumlar farklı renkte) geliştirici deneyiminin en temel parçalarından biri — ve LSP'den bağımsız, çok daha basit bir kazanım. --- ### Gelişme (Olası Yaklaşımlar) - **TextMate grameri** (VS Code'un kullandığı, regex-tabanlı `.tmLanguage.json`): saQut'un tokenizer'ındaki (Tokenizer) 6 token tipinden (`docs` belgelerine göre) yola çıkarak basit bir regex seti yazılabilir — derleyiciden bağımsız, statik bir dosya. - **Tree-sitter grameri:** Daha güçlü (gerçek bir parser üretir, hata-toleranslı), ama saQut'un kendi Pratt parser'ından ayrı bir gramer tanımı gerektirir — bakım yükü iki ayrı "dil tanımı" demektir. - v0 önerisi: TextMate grameri (en düşük efor, en hızlı görsel kazanım) — `saqut tokens` çıktısı referans alınarak anahtar kelimeler/operatörler/literal'ler renklendirilir. --- ### Açık Sorular - Bu gramer, tokenizer'daki token tanımları değiştiğinde **elle senkronize** mi tutulacak, yoksa `saqut tokens --dump-grammar` gibi bir komutla **otomatik üretilebilir** mi (programlanabilir derleyici felsefesiyle çok uyumlu bir fikir)? - Hedef editör önceliği ne olacak — VS Code (TextMate) mı, Neovim/Helix (Tree-sitter ekosistemi daha güçlü) mı? *İmza/Yorum:* Bu, listedeki **en düşük efor / en yüksek "keyif" oranına** sahip issue'lardan biri — derleyici bitmeden bile, sadece tokenizer çıktısından üretilebilir.
saqut added the
fikir
tooling-lsp
labels 2026-06-14 22:14:06 +03:00
Sign in to join this conversation.
No description provided.