# Claude Code LSP 설정 가이드

Claude Code에서 LSP(Language Server Protocol)를 활성화하여 코드 인텔리전스 기능을 사용하는 방법입니다.

## 1. LSP 플러그인 검색 및 설치

Claude Code CLI에서 `/plugin` 명령어를 입력하고 `lsp`를 검색합니다:

```
/plugin
```

검색 결과에서 원하는 언어의 LSP 플러그인을 선택합니다.

## 2. 언어별 LSP 서버 설치

토글을 눌러서 확인하세요

### Python (pylsp)

```
pip install python-lsp-server
# 또는
pip install 'python-lsp-server[all]'  # 모든 기능 포함
```

### TypeScript/JavaScript (typescript-language-server)

```
npm install -g typescript-language-server typescript
```

### Go (gopls)

```
go install golang.org/x/tools/gopls@latest
```

### Rust (rust-analyzer)

```
rustup component add rust-analyzer
```

## 3. Claude Code 패치 적용 (필수)

현재 Claude Code에서 LSP 기능이 비활성화되어 있어 패치가 필요합니다.

### 패치 스크립트 실행

```
CLI_PATH="/usr/local/lib/node_modules/@anthropic-ai/claude-code/cli.js" && \
  sudo cp "$CLI_PATH" "${CLI_PATH}.backup-$(date +%Y%m%d-%H%M%S)" && \
  sudo perl -i -pe 's/async function G\(\)\{return\}async function Z\(\)/async function G(){let{servers:F}=await v52();for(let\[E,z\]of Object.entries(F)){let \$=T52(E,z);A.set(E,\$);for(let\[L,N\]of Object.entries(z.extensionToLanguage)){let M=Q.get(L)||\[\];M.push(E);Q.set(L,M)}}}async function Z()/g' "$CLI_PATH" && \
  echo "✓ 패치 완료! Claude Code를 재시작하세요."
```

### 패치 설명

- 원본 파일 백업 생성 (`cli.js.backup-날짜시간`)

- LSP 초기화 함수 활성화

- 패치 후 Claude Code 재시작 필요

### 참고

- 패치 원본: [https://gist.github.com/Zamua/f7ca58ce5dd9ba61279ea195a01b190c](https://gist.github.com/Zamua/f7ca58ce5dd9ba61279ea195a01b190c)

- Claude Code 업데이트 시 패치 재적용 필요

## 4. 재시작 및 확인

```
# Claude Code 재시작
claude

# LSP 기능 테스트 (예: Go to Definition)
# 코드에서 함수나 변수 위에서 LSP 도구 사용
```

## 5. 사용 가능한 LSP 기능

| 기능 | 설명 |
| --- | --- |
| `goToDefinition` | 심볼 정의 위치로 이동 |
| `findReferences` | 심볼의 모든 참조 찾기 |
| `hover` | 심볼에 대한 문서/타입 정보 |
| `documentSymbol` | 파일 내 모든 심볼 목록 |
| `workspaceSymbol` | 워크스페이스 전체 심볼 검색 |
| `goToImplementation` | 인터페이스 구현 찾기 |
| `incomingCalls` | 이 함수를 호출하는 함수들 |
| `outgoingCalls` | 이 함수가 호출하는 함수들 |

## 문제 해결

### 패치가 적용되지 않는 경우

1. CLI 경로 확인:

```
which claude
# 또는
npm root -g
```

2. 권한 확인:

```
ls -la /usr/local/lib/node_modules/@anthropic-ai/claude-code/
```

### LSP 서버가 시작되지 않는 경우

1. LSP 서버가 PATH에 있는지 확인:

```
which pylsp  # Python
which typescript-language-server  # TypeScript
```

2. Claude Code 설정 파일 확인 (`~/.claude/settings.json`)

For the site tree, see the [root Markdown](https://slashpage.com/conanssam.md).
