LSP-servere
AicippY integreres med dine LSP-servere.
AicippY kan integreres med Language Server Protocol (LSP)-servere for at bruge diagnostik som feedback til agenten.
Indbyggede
AicippY leveres med flere indbyggede LSP-servere til populære sprog:
| LSP Server | Udvidelser | Krav |
|---|---|---|
| astro | .astro | Autoinstallationer til Astro-projekter |
| bash | .sh,.bash,.zsh,.ksh | Autoinstallerer bash-language-server |
| clangd | .c,.cpp,.cc,.cxx,.c++,.h,.hpp,.hh,.hxx,.h++ | Autoinstallationer for C/C++ projekter |
| csharp | .cs | .NET SDK installere |
| clojure-lsp | .clj,.cljs,.cljc,.edn | clojure-lsp kommando tilgængelig |
| dart | .dart | dart kommando tilgængelig |
| deno | .ts,.tsx,.js,.jsx,.mjs | deno kommando tilgængelig (auto-detects deno.json/deno.jsonc) |
| elixir-ls | .ex,.exs | elixir kommando tilgængelig |
| eslint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue | eslint afhængighed i projekt |
| fsharp | .fs,.fsi,.fsx,.fsscript | .NET SDK installere |
| gleam | .gleam | gleam kommando tilgængelig |
| gopls | .go | go kommando tilgængelig |
| hls | .hs,.lhs | haskell-language-server-wrapper kommando tilgængelig |
| jdtls | .java | Java SDK (version 21+) installere |
| julials | .jl | julia og LanguageServer.jl installeret |
| kotlin-ls | .kt,.kts | Autoinstallationer til Kotlin-projekter |
| lua-ls | .lua | Autoinstallationer til Lua-projekter |
| nixd | .nix | nixd kommando tilgængelig |
| ocaml-lsp | .ml,.mli | ocamllsp kommando tilgængelig |
| oxlint | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts,.vue,.astro,.svelte | oxlint afhængighed i projekt |
| php intelephense | .php | Automatiske installationer til PHP-projekter |
| prisma | .prisma | prisma kommando tilgængelig |
| pyright | .py,.pyi | pyright afhængig installeret |
| ruby-lsp (rubocop) | .rb,.rake,.gemspec,.ru | ruby og gem kommandoer tilgængelige |
| rust | .rs | rust-analyzer kommando tilgængelig |
| sourcekit-lsp | .swift,.objc,.objcpp | swift installere (xcode på macOS) |
| svelte | .svelte | Autoinstallationer til Svelte-projekter |
| terraform | .tf,.tfvars | Automatiske installationer fra GitHub-udgivelser |
| tinymist | .typ,.typc | Automatiske installationer fra GitHub-udgivelser |
| typescript | .ts,.tsx,.js,.jsx,.mjs,.cjs,.mts,.cts | typescript afhængighed i projekt |
| vue | .vue | Autoinstallationer til Vue-projekter |
| yaml-ls | .yaml,.yml | Autoinstallerer Red Hat yaml-language-server |
| zls | .zig,.zon | zig kommando tilgængelig |
LSP er deaktiveret som standard. Når det er aktiveret, starter servere, når en af ovenstående filtypenavne opdages, og kravene er opfyldt.
Sådan fungerer det
Når LSP er aktiveret, og aicippy-code åbner en fil, vil den:
- Kontrollerer filtypenavnet mod alle aktiverede LSP-servere.
- Starter den relevante LSP-server, hvis den ikke allerede kører.
Bedste praksis
LSP kan hjælpe agenten med at finde og rette problemer ved at levere diagnostik fra sprogservere. Det er nyttigt i nogle projekter, men er ikke altid en klar fordel.
Sprogservere kan komme ud af sync, bruge meget hukommelse, variere efter version eller projekt og gøre agentarbejdsgange langsommere. I mange projekter er det bedre, at agenten kører lint, typecheck eller andre diagnostiske CLI-værktøjer direkte, så fejl føres tilbage i agentens loop uden disse afvejninger. Dokumentér disse kommandoer i instruktionsfiler som AGENTS.md eller skills, så agenten ved, hvad den skal køre. Aktivér LSP, når dit projekt har gavn af ekstra sprogserverfeedback.
Konfiguration
Du kan aktivere og tilpasse LSP-servere gennem sektionen lsp i din aicippy-code-konfiguration.
For at aktivere alle indbyggede LSP-servere skal du indstille lsp til true.
{ "$schema": "./schema/aicippy-code.json", "lsp": true}Brug et objekt til at holde indbyggede servere aktiveret, mens du konfigurerer tilsidesættelser eller brugerdefinerede servere.
{ "$schema": "./schema/aicippy-code.json", "lsp": {}}Hver LSP- server understøtter følgende:
| Egenskab | Type | Beskrivelse |
|---|---|---|
disabled | boolean | Indstil dette til true for at deaktivere LSP-serveren |
command | string[] | Kommandoen til at starte LSP-serveren |
extensions | string[] | Filtypenavne, som denne LSP-server skal håndtere |
env | object | Miljøvariabler, der skal indstilles, når serveren starter |
initialization | object | Initialiseringsmuligheder for at sende til LSP-serveren |
Lad os se på nogle eksempler.
Miljøvariabler
Brug egenskaben env til at indstille miljøvariabler, når du starter LSP-serveren:
{ "$schema": "./schema/aicippy-code.json", "lsp": { "rust": { "env": { "RUST_LOG": "debug" } } }}Initialiseringsmuligheder
Brug egenskaben initialization til at videregive initialiseringsindstillinger til LSP-serveren. Disse er serverspecifikke indstillinger sendt under LSP initialize anmodningen:
{ "$schema": "./schema/aicippy-code.json", "lsp": { "typescript": { "initialization": { "preferences": { "importModuleSpecifierPreference": "relative" } } } }}Deaktivering af LSP-servere
Hvis lsp udelades, er alle LSP-servere deaktiveret. For at deaktivere alle LSP-servere efter at en anden konfiguration har aktiveret dem, skal du indstille lsp til false:
{ "$schema": "./schema/aicippy-code.json", "lsp": false}For at deaktivere en specifik LSP-server skal du indstille disabled til true:
{ "$schema": "./schema/aicippy-code.json", "lsp": { "typescript": { "disabled": true } }}Brugerdefinerede LSP-servere
Du kan tilføje brugerdefinerede LSP-servere ved at angive kommandoen og filtypenavne:
{ "$schema": "./schema/aicippy-code.json", "lsp": { "custom-lsp": { "command": ["custom-lsp-server", "--stdio"], "extensions": [".custom"] } }}Yderligere oplysninger
PHP Intelephense
PHP Intelephense tilbyder premium funktioner gennem en licensnøgle. Du kan angive en licensnøgle ved at placere (kun) nøglen i en tekstfil på:
- På macOS/Linux:
$HOME/intelephense/license.txt - På Windows:
%USERPROFILE%/intelephense/license.txt
Filen bør kun indeholde licensnøglen uden yderligere indhold.