Download packages/web/src/content/docs/ko/lsp.mdx from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 11 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/ko/lsp.mdx
- Command line
-
hf download hf://SaylorTwift/opencode/packages/web/src/content/docs/ko/lsp.mdx
-
curl -L -o lsp.mdx https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/web/src/content/docs/ko/lsp.mdx
11 kB
| --- | |
| title: LSP μλ² | |
| description: OpenCodeλ LSP μλ²μ ν΅ν©λ©λλ€. | |
| --- | |
| OpenCodeλ Language Server Protocol(LSP) μλ²μ ν΅ν©ν΄ μ§λ¨ μ 보λ₯Ό agentμ νΌλλ°±μΌλ‘ μ¬μ©ν μ μμ΅λλ€. | |
| --- | |
| ## κΈ°λ³Έ μ 곡 (Built-in) | |
| OpenCodeλ λ리 μ¬μ©λλ μΈμ΄λ₯Ό μν΄ μ¬λ¬ built-in LSP μλ²λ₯Ό μ 곡ν©λλ€. | |
| | LSP μλ² | νμ₯μ | μꡬ μ¬ν | | |
| | ------------------ | ------------------------------------------------------------------- | ---------------------------------------------------------- | | |
| | astro | .astro | Astro νλ‘μ νΈμμ μλ μ€μΉ | | |
| | bash | .sh, .bash, .zsh, .ksh | `bash-language-server` μλ μ€μΉ | | |
| | clangd | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | C/C++ νλ‘μ νΈμμ μλ μ€μΉ | | |
| | csharp | .cs | `.NET SDK` μ€μΉλ¨ | | |
| | clojure-lsp | .clj, .cljs, .cljc, .edn | `clojure-lsp` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | dart | .dart | `dart` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | deno | .ts, .tsx, .js, .jsx, .mjs | `deno` λͺ λ Ή μ¬μ© κ°λ₯ (`deno.json`/`deno.jsonc` μλ κ°μ§) | | |
| | elixir-ls | .ex, .exs | `elixir` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | νλ‘μ νΈμ `eslint` dependency μ‘΄μ¬ | | |
| | fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` μ€μΉλ¨ | | |
| | gleam | .gleam | `gleam` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | gopls | .go | `go` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | hls | .hs, .lhs | `haskell-language-server-wrapper` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | jdtls | .java | `Java SDK (version 21+)` μ€μΉλ¨ | | |
| | julials | .jl | `julia` λ° `LanguageServer.jl` μ€μΉλ¨ | | |
| | kotlin-ls | .kt, .kts | Kotlin νλ‘μ νΈμμ μλ μ€μΉ | | |
| | lua-ls | .lua | Lua νλ‘μ νΈμμ μλ μ€μΉ | | |
| | nixd | .nix | `nixd` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | ocaml-lsp | .ml, .mli | `ocamllsp` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | νλ‘μ νΈμ `oxlint` dependency μ‘΄μ¬ | | |
| | php intelephense | .php | PHP νλ‘μ νΈμμ μλ μ€μΉ | | |
| | prisma | .prisma | `prisma` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | pyright | .py, .pyi | `pyright` dependency μ€μΉλ¨ | | |
| | ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | `ruby` λ° `gem` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | rust | .rs | `rust-analyzer` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| | sourcekit-lsp | .swift, .objc, .objcpp | `swift` μ€μΉλ¨ (macOSμμλ `xcode`) | | |
| | svelte | .svelte | Svelte νλ‘μ νΈμμ μλ μ€μΉ | | |
| | terraform | .tf, .tfvars | GitHub releasesμμ μλ μ€μΉ | | |
| | tinymist | .typ, .typc | GitHub releasesμμ μλ μ€μΉ | | |
| | typescript | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | νλ‘μ νΈμ `typescript` dependency μ‘΄μ¬ | | |
| | vue | .vue | Vue νλ‘μ νΈμμ μλ μ€μΉ | | |
| | yaml-ls | .yaml, .yml | Red Hat `yaml-language-server` μλ μ€μΉ | | |
| | zls | .zig, .zon | `zig` λͺ λ Ή μ¬μ© κ°λ₯ | | |
| LSPλ κΈ°λ³Έμ μΌλ‘ λΉνμ±νλμ΄ μμ΅λλ€. νμ±ννλ©΄ μ νμ₯μ μ€ νλκ° κ°μ§λκ³ μꡬ μ¬νμ΄ μΆ©μ‘±λ λ μλ²κ° μμλ©λλ€. | |
| :::note | |
| `OPENCODE_DISABLE_LSP_DOWNLOAD` νκ²½ λ³μλ₯Ό `true`λ‘ μ€μ νλ©΄ LSP μλ² μλ λ€μ΄λ‘λλ₯Ό λΉνμ±νν μ μμ΅λλ€. | |
| ::: | |
| --- | |
| ## μλ λ°©μ | |
| LSPκ° νμ±νλμ΄ μκ³ OpenCodeκ° νμΌμ μ΄λ©΄ λ€μκ³Ό κ°μ΄ λμν©λλ€. | |
| 1. νμ±νλ λͺ¨λ LSP μλ²μ λν΄ νμΌ νμ₯μλ₯Ό νμΈν©λλ€. | |
| 2. μ μ ν LSP μλ²κ° μμ§ μ€ν μ€μ΄μ§ μλ€λ©΄ μμν©λλ€. | |
| --- | |
| ## λͺ¨λ² μ¬λ‘ | |
| LSPλ μΈμ΄ μλ²μ μ§λ¨μ μ κ³΅ν΄ agentκ° λ¬Έμ λ₯Ό μ°Ύκ³ μμ νλ λ° λμμ μ€ μ μμ΅λλ€. μΌλΆ νλ‘μ νΈμμλ μ μ©νμ§λ§ νμ μμ΄μ΅μ΄ λλ κ²μ μλλλ€. | |
| μΈμ΄ μλ²λ λκΈ°νκ° μ΄κΈλκ±°λ λ§μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νκ±°λ λ²μ λλ νλ‘μ νΈμ λ°λΌ λ€λ₯΄κ² λμνκ³ agent μν¬νλ‘λ₯Ό λλ¦¬κ² λ§λ€ μ μμ΅λλ€. λ§μ νλ‘μ νΈμμλ agentκ° lint, typecheck λλ λ€λ₯Έ μ§λ¨μ© CLI λꡬλ₯Ό μ§μ μ€ννκ² νλ νΈμ΄ λ μ’μ΅λλ€. μ΄λ κ² νλ©΄ μ΄λ¬ν νΈλ μ΄λμ€ν μμ΄ μ€λ₯κ° agent 루νλ‘ λ€μ μ λ¬λ©λλ€. agentκ° λ¬΄μμ μ€νν΄μΌ νλμ§ μ μ μλλ‘ ν΄λΉ λͺ λ Ήμ `AGENTS.md` λλ skills κ°μ instruction filesμ λ¬ΈμννμΈμ. νλ‘μ νΈκ° μΆκ° μΈμ΄ μλ² νΌλλ°±μ μ΄μ μ μ»μ λ LSPλ₯Ό νμ±ννμΈμ. | |
| --- | |
| ## κ΅¬μ± | |
| OpenCode configμ `lsp` μΉμ μμ LSP μλ²λ₯Ό νμ±ννκ³ μ¬μ©μ μ μν μ μμ΅λλ€. | |
| λͺ¨λ λ΄μ₯ LSP μλ²λ₯Ό νμ±ννλ €λ©΄ `lsp`λ₯Ό `true`λ‘ μ€μ νμΈμ. | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": true | |
| } | |
| ``` | |
| κ°μ²΄λ₯Ό μ¬μ©νλ©΄ λ΄μ₯ μλ²λ₯Ό νμ±νν μνλ‘ μ μ§νλ©΄μ μ€λ²λΌμ΄λλ μ¬μ©μ μ μ μλ²λ₯Ό ꡬμ±ν μ μμ΅λλ€. | |
| ```json title="opencode.json" | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": {} | |
| } | |
| ``` | |
| κ° LSP μλ²λ λ€μ μμ±μ μ§μν©λλ€. | |
| | μμ± | νμ | μ€λͺ | | |
| | ---------------- | -------- | --------------------------------------------- | | |
| | `disabled` | boolean | LSP μλ²λ₯Ό λΉνμ±ννλ €λ©΄ `true`λ‘ μ€μ νμΈμ | | |
| | `command` | string[] | LSP μλ²λ₯Ό μμνλ λͺ λ Ήμ λλ€ | | |
| | `extensions` | string[] | μ΄ LSP μλ²κ° μ²λ¦¬ν νμΌ νμ₯μμ λλ€ | | |
| | `env` | object | μλ² μμ μ μ€μ ν νκ²½ λ³μμ λλ€ | | |
| | `initialization` | object | LSP μλ²λ‘ μ μ‘ν μ΄κΈ°ν μ΅μ μ λλ€ | | |
| μμλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. | |
| --- | |
| ### νκ²½ λ³μ | |
| `env` μμ±μ μ¬μ©νλ©΄ LSP μλ² μμ μ νκ²½ λ³μλ₯Ό μ€μ ν μ μμ΅λλ€. | |
| ```json title="opencode.json" {5-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "rust": { | |
| "env": { | |
| "RUST_LOG": "debug" | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ### μ΄κΈ°ν μ΅μ | |
| `initialization` μμ±μ μ¬μ©ν΄ LSP μλ²μ μ΄κΈ°ν μ΅μ μ μ λ¬νμΈμ. μ΄ κ°μ LSP `initialize` μμ² μ€μ μ μ‘λλ μλ²λ³ μ€μ μ λλ€. | |
| ```json title="opencode.json" {5-9} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "typescript": { | |
| "initialization": { | |
| "preferences": { | |
| "importModuleSpecifierPreference": "relative" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| ``` | |
| :::note | |
| μ΄κΈ°ν μ΅μ μ LSP μλ²λ§λ€ λ€λ¦ λλ€. μ¬μ© κ°λ₯ν μ΅μ μ ν΄λΉ LSP μλ² λ¬Έμλ₯Ό νμΈνμΈμ. | |
| ::: | |
| --- | |
| ### LSP μλ² λΉνμ±ν | |
| `lsp`λ₯Ό μλ΅νλ©΄ λͺ¨λ LSP μλ²κ° λΉνμ±νλ©λλ€. λ€λ₯Έ configμμ νμ±νν λͺ¨λ LSP μλ²λ₯Ό λΉνμ±ννλ €λ©΄ `lsp`λ₯Ό `false`λ‘ μ€μ νμΈμ. | |
| ```json title="opencode.json" {3} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": false | |
| } | |
| ``` | |
| **νΉμ ** LSP μλ²λ₯Ό λΉνμ±ννλ €λ©΄ `disabled`λ₯Ό `true`λ‘ μ€μ νμΈμ. | |
| ```json title="opencode.json" {5} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "typescript": { | |
| "disabled": true | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ## μ¬μ©μ μ μ LSP μλ² | |
| λͺ λ Ήκ³Ό νμΌ νμ₯μλ₯Ό μ§μ ν΄ μ¬μ©μ μ μ LSP μλ²λ₯Ό μΆκ°ν μ μμ΅λλ€. | |
| ```json title="opencode.json" {4-7} | |
| { | |
| "$schema": "https://opencode.ai/config.json", | |
| "lsp": { | |
| "custom-lsp": { | |
| "command": ["custom-lsp-server", "--stdio"], | |
| "extensions": [".custom"] | |
| } | |
| } | |
| } | |
| ``` | |
| --- | |
| ## μΆκ° μ 보 | |
| ### PHP Intelephense | |
| PHP Intelephenseλ λΌμ΄μ μ€ ν€λ₯Ό ν΅ν΄ ν리미μ κΈ°λ₯μ μ 곡ν©λλ€. ν μ€νΈ νμΌμ ν€λ§ μ μ₯ν΄ λΌμ΄μ μ€ ν€λ₯Ό μ 곡ν μ μμ΅λλ€. | |
| - macOS/Linux: `$HOME/intelephense/license.txt` | |
| - Windows: `%USERPROFILE%/intelephense/license.txt` | |
| νμΌμλ μΆκ° λ΄μ© μμ΄ λΌμ΄μ μ€ ν€λ§ ν¬ν¨νλ κ²μ΄ μ’μ΅λλ€. | |