포스트

LazyVim에서 Diagnostics·LSP 로그·메시지 확인하기

LazyVim/Neovim에서 코드 진단, LSP 통신 로그, Neovim 메시지 기록을 목적별로 구분하고 각각 어디서 확인하는지 정리한다.

LazyVim에서 Diagnostics·LSP 로그·메시지 확인하기

LazyVim에서 “에러 로그를 보고 싶다”고 할 때 실제로 찾는 대상은 서로 다를 수 있다. 먼저 코드 진단(Diagnostics), LSP 통신 로그, Neovim 메시지 기록을 구분하면 필요한 화면으로 바로 갈 수 있다.

1
2
3
4
5
6
7
8
코드의 Error/Warning을 보고 싶다
→ Diagnostics / Trouble

LSP 서버와 무슨 통신을 했는지 보고 싶다
→ LSP Log

Neovim이 방금 출력한 메시지를 다시 보고 싶다
→ :messages

빠른 선택

목적확인 방법
현재 위치의 진단 내용<leader>cd
다음/이전 진단으로 이동]d / [d
진단 목록 전체 보기:Trouble diagnostics
LSP 통신 로그 보기:LspLog
최근 Neovim 메시지 다시 보기:messages

1. 코드 진단을 확인한다

LSP나 다른 진단 소스가 만든 Error/Warning을 확인하려는 경우다.

현재 커서 위치의 diagnostic은:

1
<leader>cd

로 확인할 수 있고 다음·이전 diagnostic으로 이동하려면:

1
2
]d
[d

를 사용한다.

프로젝트나 버퍼의 진단을 목록으로 보고 싶다면:

1
:Trouble diagnostics

를 사용한다.

코드에 붙은 문제 자체를 보고 싶다면 Diagnostics/Trouble 계층을 보면 된다.

2. LSP 통신 로그를 확인한다

Diagnostic 결과가 이상하거나 LSP 서버 자체의 요청·응답을 확인해야 한다면 UI에 표시된 진단보다 한 단계 아래인 LSP 로그를 본다.

1
:LspLog

일반적인 로그 위치는 다음과 같다.

1
~/.local/state/nvim/lsp.log

로그 내용이 충분하지 않다면 현재 LSP 로그 레벨 설정도 함께 확인한다.

1
2
3
4
5
LSP Server
   ↕
Neovim LSP Client
   ↓
LSP Log

:LspLog는 “현재 코드의 에러 목록”을 보여주는 명령이 아니라 LSP client/server 통신을 진단하기 위한 로그다.

3. Neovim 메시지 기록을 확인한다

플러그인이나 명령 실행 중 잠깐 나타났다가 사라진 메시지를 다시 보고 싶다면:

1
:messages

를 사용한다.

이건 Diagnostics나 LSP 전용 기능이 아니라 Neovim의 메시지 히스토리다.

1
2
3
4
5
명령 / 플러그인 실행
       ↓
Neovim 메시지 출력
       ↓
:messages

따라서 “방금 화면 아래에 에러가 떴는데 사라졌다”면 가장 먼저 확인하기 좋다.

어떤 것을 먼저 볼까

1
2
3
4
5
6
7
8
코드 줄에 Error/Warning 표시가 있다
→ <leader>cd / Trouble

LSP가 이상하게 동작한다
→ :LspLog

명령 실행 직후 메시지가 사라졌다
→ :messages

문제의 위치가 불분명하다면 :messages → Diagnostics → LSP Log 순으로 범위를 좁혀도 된다.

확인 후 로그를 보관하고 싶다면

:LspLog로 연 로그를 별도 파일로 저장할 수 있다.

1
:w lsp-debug.log

Trouble의 키맵과 Diagnostics·Quickfix·Location List의 관계는 LazyVim Trouble — 코드 문제와 목록 탐색에서 별도로 다룬다. 이 글의 목적은 문제가 있을 때 어떤 정보원을 어디서 확인할지 빠르게 선택하는 것이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.