Document ★ 3,412

lsp

Atopile Language Server'ın (pygls) nasıl çalıştığı, doküman başına graph'ları completion/hover/definitions için nasıl inşa ettiği ve hızlı ve çöküntüsüz kalmasını sağlayan invariantlar.

cd ~/.claude/skills
git clone https://github.com/atopile/atopile.git atopile

LSP Modülü

lsp modülü (src/atopile/lsp/ dizininde yer alır) atopile için Language Server Protocol'ü uygular. ato dosyaları için otomatik tamamlama, tanıma gitme ve tanılama (hata raporlama) gibi IDE özelliklerini sağlar.

Hızlı Başlangıç

Sunucuyu stdio üzerinde çalıştırın (editörlerin beklediği şey):

python -m atopile.lsp.lsp_server

İlgili Dosyalar

  • Sunucu uygulaması: src/atopile/lsp/lsp_server.py
    • global LSP_SERVER (pygls LanguageServer) sahibi
    • doküman başına DocumentState tutar (graph/typegraph/build_result)
    • completion/hover/definition/diagnostics handler'larını uygular
  • Yardımcı araçlar: src/atopile/lsp/lsp_utils.py
  • İsteğe bağlı hata ayıklama yardımcısı: src/atopile/lsp/_debug_server.py

Bağımlılar (Çağrı Siteleri)

  • VSCode Extension: Bu sunucu için belirtilen istemci.
  • Compiler: LSP, kod yapısını anlamak için derleyiciyi (çoğunlukla kısmi veya hata-toleranslı modda) çağırır.

Nasıl Çalışılır / Geliştirilebilir / Test Edilir

Temel Kavramlar

  • Kısmi Derleme: CLI build'in aksine, LSP kırık veya eksik kodu kilitlenmeden işleyebilmelidir.
  • Gecikme Süresi: Özellikler hızlı olmalıdır (yazma için <50ms, tamamlama için <200ms).
  • Doküman başına graph'lar: açık olan her dokümanın DocumentState içinde depolanmış izole bir GraphView + TypeGraph'ı vardır.
  • Son başarılı build'i tut: sunucu, mevcut düzenleme hatalar içerse bile tamamlama/hover özelliklerini desteklemek için son başarılı BuildFileResult'ı tutar.

Geliştirme İş Akışı

  1. src/atopile/lsp/lsp_server.py içindeki handler'ları/yardımcıları düzenleyin.
  2. Tamamlama testlerini çalıştırın (hızlı döngü) ve GraphView temizleme yollarını doğrulayın.

Test Etme

  • Entegrasyon stili testler: ato dev test --llm test/test_lsp_completion.py -q

En İyi Uygulamalar

  • Sağlamlık: Sunucunun hiçbir zaman kilitlenmesine izin vermeyin. Handler'lardaki tüm istisnaları yakalayın ve günlüğe kaydedin.
  • Debouncing: Her tuşa basışında pahalı işlemleri tetiklemeyin.

Temel Değişmezler (regresyon açısından kolay)

  • Rebuild/reset yapılırken eski graph'ları her zaman yok edin (DocumentState.reset_graph çağrısı GraphView.destroy() yapar).
  • Build'lerin başarılı olacağını varsaymayın; çoğu özellik aşağıdakilerle başa çıkmalıdır:
    • söz dizimi hataları (ANTLR)
    • kısmi typegraph'lar
    • linking/deferred execution'dan gelen istisnalar

Benzer skill'ler

canvas-design Document

.png ve .pdf dosyalarında tasarım felsefesini kullanarak güzel görseller oluşturun. Poster, sanat eseri, tasarım veya diğer statik içerikler için bu özelliği kullanabilirsiniz. Telif hakkı ihlallerinden kaçınmak için her zaman orijinal tasarımlar yaratın, mevcut sanatçıların çalışmalarını kopya etmeyin.

anthropics/skills ★ 153,732
doc-coauthoring Document

Kullanıcıları belgelendirme konusunda işbirlikçi yazım için yapılandırılmış bir workflow içinde rehber etmek için kullanılır. Kullanıcı belgelendirme, teknik özellikler, karar dokümanları veya benzer yapılandırılmış içerik yazma istediğinde harekete geçer. Bu workflow, bağlamı verimli bir şekilde aktarmaya, içeriği yinelemelerle geliştirmeye ve dokümanın okuyucular için işe yaradığını doğrulamaya yardımcı olur.

anthropics/skills ★ 153,732
docx Document

Bu skill'i kullanıcı Word belgesi (.docx dosyası) oluşturmak, okumak, düzenlemek veya manipüle etmek istediğinde kullanın. İçindekiler tablosu, başlık, sayfa numarası veya mektup başlığı gibi formatlı profesyonel belge talepleri, "Word doc", "word document" veya ".docx" ifadeleri geçtiğinde tetiklenir. .docx dosyalarından içerik çıkarma veya yeniden düzenleme, görsel ekleme veya değiştirme işlemleri için de kullanılır.

anthropics/skills ★ 153,732
pdf Document

Kullanıcı PDF dosyaları ile herhangi bir işlem yapmak istediğinde bu skill'i kullanın. Buna PDF'lerden metin/tablo okuma ve çıkarma, birden fazla PDF'yi birleştirme, PDF'leri bölme, sayfaları döndürme, filigran ekleme, yeni PDF oluşturma, PDF formlarını doldurma, PDF şifreleme/şifre açma, görüntü çıkarma ve taranmış PDF'lerde OCR uygulaması dahildir. Kullanıcı bir .pdf dosyasından bahsettiğinde veya

anthropics/skills ★ 153,732
pptx Document

Bu skill'i .pptx dosyalarıyla çalışmanız gereken her durumda kullanın — giriş, çıkış veya her ikisi için de. Sunum oluşturma, slayt destesi hazırlama, metnini okuma ve çıkarma, düzenleme veya güncelleme, dosyaları birleştirme ve bölme gibi tüm işlemleri kapsar.

anthropics/skills ★ 153,732
theme-factory Document

Artifaktları tema ile stilize etmek için toolkit. Slaytlar, dokümanlar, raporlar, HTML landing page'ler gibi çeşitli artifaktlara uygulanabilir. 10 hazır tema ile renkler ve fontları seçebilir ya da anında yeni tema oluşturabilirsiniz.

anthropics/skills ★ 153,732
Daha fazla: Document →