Dokumentation / Die IDE

Language Server und Build

Die Language Server, die Yuli für dich installiert und pflegt, ohne npm oder Node im System, und die Build-Adapter für Python, Go, .NET, sbt, Bazel und Node.

Für jede Sprache nutzt Yuli den Referenz-Language-Server (LSP) und verwaltet ihn für dich: Es lädt ihn mit deiner Erlaubnis herunter, prüft ihn und hält ihn aus deinen Projekten heraus. Java hat eine eigene native Engine, und CSS, SCSS und LESS erledigt der Editor selbst.

Verwaltete Server

Sprache Server Installiert über
TypeScript und JavaScript typescript-language-server mit typescript (der echte tsserver) npm-Registry
Python Pyright npm-Registry
Go gopls go install
Kotlin kotlin-language-server Zip von GitHub
C# csharp-ls dotnet tool
PHP Intelephense npm-Registry
Ruby ruby-lsp gem
C und C++ clangd 19.1.2 Zip von GitHub
Bash bash-language-server npm-Registry
Dockerfile dockerfile-language-server-nodejs npm-Registry
Rust rust-analyzer Binärdatei von GitHub

Ohne npm oder Node auf deinem Rechner

  • Die Pakete werden direkt aus der npm-Registry heruntergeladen und gegen die SHA-512-Prüfsumme geprüft, die die Registry veröffentlicht.
  • Es werden keine Installationsskripte und keine optionalen Abhängigkeiten ausgeführt.
  • Sie laufen auf dem eigenen Electron von Yuli im Node-Modus oder auf einem Node, das Yuli herunterlädt. Du musst weder npm noch Node installiert haben.
  • Sie werden unter <runtimes>/<server>/<version>/ abgelegt.
  • Ein Download wird nur abgebrochen, wenn 60 Sekunden lang keine Daten mehr ankommen; ein langsamer, aber aktiver Download wird nicht unterbrochen.

Der Runtime-Ordner von Yuli (<runtimes>) hängt vom System ab:

%LOCALAPPDATA%\.yulicode\runtimes

Mit deiner Erlaubnis

Fehlt der Server einer Sprache, zeigt der Editor „Kein Sprachserver für …“ mit diesen Optionen:

Option Was sie tut
Download erlauben / Installation erlauben Yuli installiert und startet ihn
Jetzt nicht Fragt in dieser Sitzung nicht mehr
Nicht mehr fragen Merkt sich deine Entscheidung für diesen Server

Ohne deine Erlaubnis wird nichts heruntergeladen oder ausgeführt. Die Entscheidungen werden in lsp-install-consent.json neben deiner Konfiguration gespeichert, pro Server und pro Ziel (dieser Rechner oder ein Remote-Host).

Unter Globale Optionen → Language Server kannst du den Pfad zu einem Server angeben, den du schon hast, oder eine vertrauenswürdige URL oder einen Mirror.

Build-Adapter

Yuli erkennt anhand der Dateien, wie jedes Projekt gebaut wird, ohne dafür etwas auszuführen, und nutzt diese Werkzeuge, um zu kompilieren, auszuführen, zu testen und die Ergebnisse im Panel Tests anzuzeigen.

  • Paketmanager: pip (requirements*.txt, setup.py oder eine einfache pyproject.toml), Poetry, uv, Pipenv und Hatch.
  • Umgebung: nutzt die virtuelle Umgebung des Projekts (.venv/venv, die Ordner von Poetry und Pipenv oder den von Hatch). Ohne Umgebung nimmt es das run des Paketmanagers und sonst das Python des Systems.
  • Tests: pytest, wenn das Projekt es konfiguriert oder davon abhängt; sonst unittest.
  • Dieselbe Umgebung wird an Pyright übergeben, damit die Autovervollständigung deine Abhängigkeiten sieht.

Maven, Gradle, Ant und Cargo funktionieren wie immer; siehe Ausführen und debuggen.

▶ im Rand

Neben dem Code erscheint ein ▶, um auszuführen oder zu debuggen, was du vor dir hast. Es wird nur angezeigt, wenn das Projekt wirklich von diesem Typ ist.

Sprache Ausführen Debuggen
Python if __name__ == "__main__": und Tests mit pytest oder unittest if __name__ == "__main__":
Go func main und func TestX func main und func TestX
C# Tests mit xUnit, NUnit und MSTest static void Main(

Außerdem hat in einer package.json jedes Skript sein ▶ (es läuft mit dem Paketmanager des Projekts), und in Java gibt es ▶ für Klassen mit main, Tests und Tasks von Maven und Gradle.

Siehe Debugging für die Debugging-Sitzungen und Editor und Sprachen für den Rest des Editors.