Herb 언어 서버 설치 및 연동
Herb 언어 서버는 다양한 개발 환경에서 손쉽게 통합될 수 있습니다. Visual Studio Code 및 Open VSX Registry에서는 전용 LSP 확장 프로그램을 설치하여 사용합니다. Zed의 경우 공식 Ruby 확장 프로그램에 포함되어 있으며, Neovim (nvim 0.11+ 필요)에서는 nvim-lspconfig
를 통해 herb_ls
를 설정에 추가합니다. Sublime Text에서는 Sublime LSP와 함께 LSP.sublime-settings
파일을 업데이트하여 herb
클라이언트를 구성합니다.
- Neovim 설정 예시:
lua require('lspconfig') vim.lsp.enable('herb_ls')
- Sublime Text 설정 예시:
json { "clients": { "herb": { "enabled": true, "command": [ "herb-language-server", "--stdio" ], "selector": "text.html.ruby | text.html.rails", "settings": { "languageServerHerb.linter": { "enabled": true, "excludedRules": ["parser-no-errors"] } }, "initializationOptions": { "enabledFeatures": { "diagnostics": true }, "experimentalFeaturesEnabled": true } } } }
또한,npm
또는yarn
을 사용하여 전역으로 설치하거나,npx
로 설치 없이 직접 실행할 수 있습니다. 실행 시--stdio
,--node-ipc
,--socket=<port>
옵션을 활용합니다.
설정 파일 (.herb-lsp/config.json
)
프로젝트 루트의 .herb-lsp/config.json
파일을 통해 언어 서버를 구성할 수 있습니다. 이 파일은 특히 포맷팅 동작을 제어하며, enabled
, indentWidth
, maxLineLength
등의 옵션을 제공합니다.
- 포맷팅 설정 예시:
json { "options": { "formatter": { "enabled": true, "indentWidth": 2, "maxLineLength": 80 } } }
포맷팅 기능은 현재 베타 단계이며 기본적으로 비활성화되어 있습니다. VS Code 사용자는 전역 설정으로도 제어 가능합니다.