Download packages/web/src/content/docs/pl/lsp.mdx from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 10.9 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/pl/lsp.mdx
- Command line
-
hf download hf://SaylorTwift/opencode/packages/web/src/content/docs/pl/lsp.mdx
-
curl -L -o lsp.mdx https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/pl/lsp.mdx
10.9 kB
| --- | |
| title: Serwery LSP | |
| description: OpenCode integruje si臋 z serwerami LSP. | |
| --- | |
| OpenCode mo偶e integrowa膰 si臋 z serwerami Language Server Protocol (LSP), aby u偶ywa膰 diagnostyki jako informacji zwrotnej dla agenta. | |
| --- | |
| ## Wbudowane | |
| OpenCode posiada kilka wbudowanych serwer贸w LSP dla nast臋puj膮cych j臋zyk贸w: | |
| | Serwer LSP | Rozszerzenia | Wymagania | | |
| | ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ | | |
| | astro | .astro | Automatyczna instalacja dla Astro | | |
| | bash | .sh, .bash, .zsh, .ksh | Automatycznie instaluje serwer j臋zyka bash | | |
| | clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Automatyczna instalacja dla C/C++ | | |
| | csharp | .cs | Zainstalowany `.NET SDK` | | |
| | clojure-lsp | .clj, .cljs, .cljc, .edn | Dost臋pne polecenie `clojure-lsp` | | |
| | dart | .dart | Dost臋pne polecenie `dart` | | |
| | deno | .ts, .tsx, .js, .jsx, .mjs | Dost臋pne polecenie `deno` (automatyczne wykrywanie deno.json/deno.jsonc) | | |
| | elixir-ls | .ex, .exs | Dost臋pne polecenie `elixir` | | |
| | eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | Zale偶no艣膰 `eslint` w projekcie | | |
| | fsharp | .fs, .fsi, .fsx, .fsscript | Zainstalowany `.NET SDK` | | |
| | gleam | .gleam | Dost臋pne polecenie `gleam` | | |
| | gopls | .go | Dost臋pne polecenie `go` | | |
| | hls | .hs, .lhs | Dost臋pne polecenie `haskell-language-server-wrapper` | | |
| | jdtls | .java | Zainstalowany `Java SDK (version 21+)` | | |
| | julials | .jl | Zainstalowane `julia` i `LanguageServer.jl` | | |
| | kotlin-ls | .kt, .kts | Automatyczna instalacja dla Kotlin | | |
| | lua-ls | .lua | Automatyczna instalacja dla Lua | | |
| | nixd | .nix | Dost臋pne polecenie `nixd` | | |
| | ocaml-lsp | .ml, .mli | Dost臋pne polecenie `ocamllsp` | | |
| | oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | Zale偶no艣膰 `oxlint` w projekcie | | |
| | php intelephense | .php | Automatyczna instalacja dla PHP | | |
| | prisma | .prisma | Dost臋pne polecenie `prisma` | | |
| | pyright | .py, .pyi | Zainstalowana zale偶no艣膰 `pyright` | | |
| | ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Dost臋pne polecenie `ruby` i `gem` | | |
| | rust | .rs | Dost臋pne polecenie `rust-analyzer` | | |
| | sourcekit-lsp | .swift, .objc, .objcpp | Zainstalowany `swift` (`xcode` na macOS) | | |
| | svelte | .svelte | Automatyczna instalacja dla aplikacji Svelte | | |
| | terraform | .tf, .tfvars | Automatyczna instalacja z wyda艅 GitHub | | |
| | tinymist | .typ, .typc | Automatyczna instalacja z wyda艅 GitHub | | |
| | typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | Zale偶no艣膰 `typescript` w projekcie | | |
| | vue | .vue | Automatyczna instalacja dla Vue | | |
| | yaml-ls | .yaml, .yml | Automatycznie instaluje serwer j臋zyka yaml Red Hat | | |
| | zls | .zig, .zon | Dost臋pne polecenie `zig` | | |
| LSP jest domy艣lnie wy艂膮czone. Gdy jest w艂膮czone, serwery uruchamiaj膮 si臋 po wykryciu jednego z obs艂ugiwanych rozszerze艅 plik贸w i spe艂nieniu wymaga艅. | |
| :::note | |
| Mo偶esz wy艂膮czy膰 automatyczne pobieranie serwer贸w LSP, ustawiaj膮c zmienn膮 艣rodowiskow膮 `OPENCODE_DISABLE_LSP_DOWNLOAD` na `true`. | |
| ::: | |
| --- | |
| ## Jak to dzia艂a | |
| Gdy LSP jest w艂膮czony i OpenCode otwiera plik: | |
| 1. Sprawdza plik pod k膮tem wszystkich dost臋pnych serwer贸w LSP. | |
| 2. Uruchamia odpowiedni serwer LSP, je艣li jeszcze nie dzia艂a. | |
| --- | |
| ## Dobre praktyki | |
| LSP mo偶e pom贸c agentowi znajdowa膰 i naprawia膰 problemy, dostarczaj膮c diagnostyk臋 z serwer贸w j臋zykowych. Jest to przydatne w niekt贸rych projektach, ale nie zawsze jest jednoznaczn膮 korzy艣ci膮. | |
| Serwery j臋zykowe mog膮 wypa艣膰 z synchronizacji, zu偶ywa膰 du偶o pami臋ci, r贸偶ni膰 si臋 mi臋dzy wersjami lub projektami i spowalnia膰 workflow agenta. W wielu projektach lepiej, aby agent uruchamia艂 lint, typecheck lub inne diagnostyczne narz臋dzia CLI bezpo艣rednio; wtedy b艂臋dy wracaj膮 do p臋tli agenta bez tych kompromis贸w. Udokumentuj te komendy w plikach instrukcji, takich jak `AGENTS.md` lub skills, aby agent wiedzia艂, co uruchomi膰. W艂膮cz LSP, gdy Tw贸j projekt korzysta z dodatkowej informacji zwrotnej z serwera j臋zykowego. | |
| --- | |
| ## Konfiguracja | |
| Mo偶esz w艂膮cza膰 i dostosowywa膰 serwery LSP poprzez sekcj臋 `lsp` w konfiguracji OpenCode. | |
| Aby w艂膮czy膰 wszystkie wbudowane serwery LSP, ustaw `lsp` na `true`. | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": true | |
| } | |
| ``` | |
| U偶yj obiektu, aby pozostawi膰 wbudowane serwery w艂膮czone i jednocze艣nie skonfigurowa膰 nadpisania lub serwery niestandardowe. | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": {} | |
| } | |
| ``` | |
| Ka偶dy serwer LSP obs艂uguje nast臋puj膮ce w艂a艣ciwo艣ci: | |
| | W艂a艣ciwo艣膰 | Typ | Opis | | |
| | ---------------- | -------- | ------------------------------------------------------ | | |
| | `disabled` | boolean | Ustaw na `true`, aby wy艂膮czy膰 ten serwer LSP | | |
| | `command` | string[] | Polecenie uruchomienia serwera LSP | | |
| | `extensions` | string[] | Rozszerzenia plik贸w, kt贸re powinny u偶ywa膰 tego serwera | | |
| | `env` | object | Zmienne 艣rodowiskowe ustawiane podczas uruchamiania | | |
| | `initialization` | object | Opcje inicjalizacji do wys艂ania do serwera LSP | | |
| Sp贸jrzmy na kilka przyk艂ad贸w. | |
| --- | |
| ### Zmienne 艣rodowiskowe | |
| U偶yj `env`, aby ustawi膰 zmienne 艣rodowiskowe podczas uruchamiania serwera LSP: | |
| ```json title="opencode.json" {5-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "rust": { | |
| "env": { | |
| "RUST_LOG": "debug" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ### Opcje inicjalizacji | |
| U偶yj w艂a艣ciwo艣ci `initialization`, aby przekaza膰 niestandardowe opcje inicjalizacji do serwera LSP. S膮 one wysy艂ane w 偶膮daniu `initialize` protoko艂u LSP: | |
| ```json title="opencode.json" {5-9} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "typescript": { | |
| "initialization": { | |
| "preferences": { | |
| "importModuleSpecifierPreference": "relative" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| :::note | |
| Opcje inicjalizacji r贸偶ni膮 si臋 w zale偶no艣ci od serwera LSP. Sprawd藕 dokumentacj臋 swojego serwera LSP. | |
| ::: | |
| --- | |
| ### Wy艂膮czanie serwer贸w LSP | |
| Je艣li `lsp` zostanie pomini臋te, wszystkie serwery LSP s膮 wy艂膮czone. Aby wy艂膮czy膰 wszystkie serwery LSP po tym, jak inna konfiguracja je w艂膮czy艂a, ustaw `lsp` na `false`: | |
| ```json title="opencode.json" {3} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": false | |
| } | |
| ``` | |
| Aby wy艂膮czy膰 **okre艣lony** serwer LSP, ustaw `disabled` na `true`: | |
| ```json title="opencode.json" {5} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "typescript": { | |
| "disabled": true | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ### Niestandardowe serwery LSP | |
| Mo偶esz doda膰 niestandardowe serwery LSP, podaj膮c polecenie i rozszerzenia plik贸w: | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "custom-lsp": { | |
| "command": ["custom-lsp-server", "--stdio"], | |
| "extensions": [".custom"] | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ## Dodatkowe informacje | |
| ### PHP Intelephense | |
| PHP Intelephense oferuje funkcje premium poprzez klucz licencyjny. Mo偶esz u偶y膰 klucza licencyjnego, umieszczaj膮c go (sam klucz) w pliku tekstowym pod adresem: | |
| - macOS/Linux: `$HOME/intelephense/license.txt` | |
| - Windows: `%USERPROFILE%/intelephense/license.txt` | |
| Plik powinien zawiera膰 wy艂膮cznie klucz licencyjny, bez bia艂ych znak贸w. | |