LSP(Language Server Protocol)
π LSP μλ² μ¬μ©μ μ£Όμ ν¨κ³Ό
1. μ νν μ½λ μ΄ν΄
- LSPλ λ¨μ λ¬Έμμ΄ κ²μμ΄ μλλΌ μ½λμ AST(Abstract Syntax Tree)μ νμ
μ 보λ₯Ό κΈ°λ°μΌλ‘ λΆμν©λλ€.
- AI μμ΄μ νΈκ° ν¨μ, λ³μ, ν΄λμ€μ μ€μ μ μμ μ°Έμ‘°λ₯Ό ꡬλΆν μ μμ΄ μ€νμ μ€μ΄κ³ μ νν κ²°κ³Όλ₯Ό μ 곡ν©λλ€.
2. IDEμ AI μμ΄μ νΈμ λΆλ¦¬
- LSPλ μλ IDEμ μΈμ΄ κΈ°λ₯μ λΆλ¦¬νκΈ° μν΄ λ§λ€μ΄μ‘μ΅λλ€.
- AI μ½λ© μμ΄μ νΈλ LSPλ₯Ό ν΅ν΄ νΉμ IDEμ μ’
μλμ§ μκ³ λ€μν νκ²½μμ λμΌν μΈμ΄ μ§μμ λ°μ μ μμ΅λλ€.
- μ: VS Code, Vim, Cursor κ°μ μλν°μμ λμΌν “μΈμ΄ λλ”λ₯Ό 곡μ κ°λ₯.
3. κ°λ° μμ°μ± ν₯μ
- “μλ μμ±”, “μλ¬ μ§λ¨”, “리ν©ν λ§ μ§μ” κ°μ κΈ°λ₯μ AIκ° LSP μλ²λ₯Ό ν΅ν΄ νμ©ν μ μμ΄ κ°λ° μλμ νμ§μ΄ κ°μ λ©λλ€.
- νΉν λκ·λͺ¨ μ½λλ² μ΄μ€μμ AIκ° λ λΉ λ₯΄κ³ μ ννκ² λ§₯λ½μ νμ
ν μ μμ΅λλ€.
4. μμ΄μ νΈ κ΅μ²΄ μ©μ΄μ±
- μ΅κ·Όμλ Agent Client Protocol(ACP) κ°μ νμ₯ κ°λ
μ΄ λ±μ₯ν΄, LSPμ²λΌ AI μμ΄μ νΈλ μ½κ² κ΅μ²΄ν μ μλ νκ²½μ΄ λ§λ ¨λκ³ μμ΅λλ€.
- μ΄λ κ°λ°μκ° IDEλ₯Ό λ°κΎΈμ§ μκ³ λ λ€μν AI μ½λ© μμ΄μ νΈλ₯Ό μμ½κ² μ νν μ μκ² ν©λλ€.
VS Code μ©μΌλ‘λ PureBasic LSPκ° λ§μΌ νλ μ΄μ€μ μ‘΄μ¬νλ€. μ΄λ₯Ό opencodeμμ μ¬μ©νλ λ°©λ²μ μλ΄νλ€.
λμΌ νμμ μ¬μ©νλ―λ‘ νΈνμ΄ λλ©°, opencodeμμ json λ±λ‘νλ©΄ λλ€.
1. VS Codeμ νλ¬κ·ΈμΈ μ€μΉ
2. powershellλ‘ LSP μ€μΉ κ²½λ‘ νμΈ
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" -Directory |
Where-Object { $_.Name -like "meimingqi222.vscode-purebasic-*" } |
Select-Object -ExpandProperty FullName
3. μλμ° κΈ°μ€ %USERPROFILE%\.config\opencode\opencode.json νΈμ§
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"purebasic": {
"command": [
"node",
"C:\\Users\\<USER>\\.vscode\\extensions\\meimingqi222.vscode-purebasic-0.0.4\\out\\server\\server.js",
"--stdio"
],
"extensions": [".pb", ".pbi", ".pbp"]
}
}
}
4. opencode μ¬μμ
5. μ΄μ *.pb νμΌμ read νκ³ λλ©΄ μλ¨ "μν" μμ΄μ½μμ LSPκ° λ±λ‘λ κ²μ λ³Ό μ μλ€.
* λ±λ‘λ§ νλ©΄ μ λλ€, AGENTS.mdμ μ§μλ₯Ό νκ³ μ½μΌλΌκ³ ν΄μΌ νλ€.
λκΈ μμ