Belgeler / IDE
Dil sunucuları ve build
Yuli'nin npm veya sistem Node'u olmadan sizin için kurup bakımını yaptığı dil sunucuları ve Python, Go, .NET, sbt, Bazel ve Node için build adaptörleri.
Yuli her dil için referans dil sunucusunu (LSP) kullanır ve onu sizin yerinize yönetir: izninizle indirir, doğrular ve projelerinizin dışında tutar. Java'nın kendine ait yerel bir motoru vardır; CSS, SCSS ve LESS ise düzenleyici tarafından çözümlenir.
Yönetilen sunucular
| Dil | Sunucu | Nereden kurulur |
|---|---|---|
| TypeScript ve JavaScript | typescript (gerçek tsserver) ile typescript-language-server |
npm kayıt deposu |
| Python | Pyright | npm kayıt deposu |
| Go | gopls | go install |
| Kotlin | kotlin-language-server | GitHub zip'i |
| C# | csharp-ls | dotnet tool |
| PHP | Intelephense | npm kayıt deposu |
| Ruby | ruby-lsp | gem |
| C ve C++ | clangd 19.1.2 | GitHub zip'i |
| Bash | bash-language-server | npm kayıt deposu |
| Dockerfile | dockerfile-language-server-nodejs | npm kayıt deposu |
| Rust | rust-analyzer | GitHub ikili dosyası |
Bilgisayarınızda npm veya Node olmadan
- Paketler doğrudan npm kayıt deposundan indirilir ve kayıt deposunun yayımladığı SHA-512 özetiyle karşılaştırılır.
- Kurulum betikleri ve isteğe bağlı bağımlılıklar çalıştırılmaz.
- Yuli'nin kendi Electron'u üzerinde Node kipinde ya da Yuli'nin indirdiği bir Node üzerinde çalışırlar. npm veya Node kurulu olması gerekmez.
<runtimes>/<sunucu>/<sürüm>/içinde saklanırlar.- Bir indirme yalnızca 60 saniye boyunca hiç veri gelmezse kesilir; yavaş ama etkin bir indirme yarıda bırakılmaz.
Yuli'nin runtime klasörü (<runtimes>) sisteme göre değişir:
%LOCALAPPDATA%\.yulicode\runtimes
~/Library/Caches/.yulicode/runtimes
$XDG_CACHE_HOME/yulicode/runtimes (varsayılan olarak ~/.cache/yulicode/runtimes)
İzninizle
Bir dilin sunucusu eksikse düzenleyici şu seçeneklerle «… için dil sunucusu yok» uyarısını gösterir:
| Seçenek | Ne yapar |
|---|---|
| İndirmeye izin ver / Kuruluma izin ver | Yuli sunucuyu kurar ve başlatır |
| Şimdi değil | Bu oturum boyunca bir daha sormaz |
| Bir daha sorma | O sunucu için kararınızı hatırlar |
İzniniz olmadan hiçbir şey indirilmez veya çalıştırılmaz. Kararlar, ayarlarınızın yanındaki lsp-install-consent.json dosyasında sunucu ve hedef (bu bilgisayar veya uzak bir ana makine) bazında saklanır.
Genel seçenekler → Dil sunucuları bölümünde, zaten sahip olduğunuz bir sunucunun yolunu ya da güvendiğiniz bir URL'yi veya yansıyı belirtebilirsiniz.
Build adaptörleri
Yuli, her projenin nasıl derlendiğini dosyalarından, bunu öğrenmek için hiçbir şey çalıştırmadan algılar ve bu araçları derlemek, çalıştırmak, test etmek ve sonuçları Testler panelinde göstermek için kullanır.
- Yöneticiler: pip (
requirements*.txt,setup.pyveya sade birpyproject.toml), Poetry, uv, Pipenv ve Hatch. - Ortam: Projenin sanal ortamını kullanır (
.venv/venv, Poetry ve Pipenv klasörleri ya da Hatch'inki). Ortam yoksa yöneticininrunkomutunu, o da yoksa sistemin Python'unu kullanır. - Testler: Proje pytest'i yapılandırıyor veya ona bağımlıysa pytest; aksi hâlde unittest.
- Aynı ortam Pyright'a da aktarılır; böylece otomatik tamamlama bağımlılıklarınızı görür.
go build,go runvego test ./....- Testler, test gezgini için
-jsonbiçiminde okunur; konsol ise metni-vile olduğu gibi gösterir.
.sln,.csproj,.fsprojve.vbprojprojeleri.- Test sonuçları TRX biçiminde gelir.
build.sbtiçeren projeler.- Test sonuçları
target/test-reportsiçindeki JUnit XML'den okunur.
MODULE.bazelveyaWORKSPACEiçeren projeler.bazel build //...,bazel test //...vebazel run <etiket>; kuruluysa bazelisk kullanılır.
- Paket yöneticisi:
package.jsoniçindekipackageManageralanı; bu alan yoksa lockfile:pnpm-lock.yaml,yarn.lock,bun.lockbveyapackage-lock.json. - Kapsam: Projede zaten bulunan araçla, şu sırayla: vitest, jest, c8 ve nyc. Yuli
coverage/coverage-summary.jsondosyasını okur. Bunlardan hiçbiri yoksa kapsam ölçülmez.
Maven, Gradle, Ant ve Cargo her zamanki gibi çalışır; bkz. Çalıştırma ve hata ayıklama.
Kenar boşluğundaki ▶
Kodun yanında, önünüzdekini çalıştırmak veya hata ayıklamak için bir ▶ görünür. Yalnızca proje gerçekten o türdense gösterilir.
| Dil | Çalıştır | Hata ayıkla |
|---|---|---|
| Python | if __name__ == "__main__": ve pytest ya da unittest testleri |
if __name__ == "__main__": |
| Go | func main ve func TestX |
func main ve func TestX |
| C# | xUnit, NUnit ve MSTest testleri | static void Main( |
Ayrıca bir package.json içinde her betiğin kendi ▶ düğmesi vardır (projenin paket yöneticisiyle çalışır); Java'da ise main içeren sınıflar, testler ve Maven ile Gradle görevleri için ▶ bulunur.
Hata ayıklama oturumları için Hata ayıklama, düzenleyicinin geri kalanı için Düzenleyici ve diller sayfasına bakın.