VSCode 에서 languageserver 확인

VS Code에서 Jupyterlab 3.x를 사용하는데 classic jupyter notebook 에서 가능하던 content assistance 기능이 작동을 하지 않았다.

상황

Jupyterlab, classic jupyter notebook 에서 가능하던 content assistance 기능으로 속성/모듈/함수/도움말 등의 지원이 가능했다.

  • Jupyterlab에서 노트북 셀의 tab & shift tab
그림>

그런데 Visual studio code 에서 .ipynb 노트북 파일을 열어 사용하면 이런 기능이 안되고 있어서 궁금했다.

구글 검색으로 스택오버플로우에 올라온 기사를 보니 settings.json 을 보면 python language server 설정을 해야 한다고 한다. 현재는 Default 상태로 선택되어 있어서 그렇다고 한다. 그래서 Pylance 를 지정했다.

languageserver 를 지정하고 재시작한 후 살펴보니 잘 된다.

Language Server extension 이란?

language-server-extension-guide 에서 설명한 바로는

여러 프로그래밍 언어에 대해서 강력한 편집 경험을 제공하고자 한다.

아래 그림에서 languageserver 의 효과를 설명하고 있다. 왼쪽 같이 LSP 가 없으면 각 편집기에서 직접 언어 엔진을 가동해야 한다. 그런데 오른쪽 깥이 LSP를 사용하면 하나의 서버를 통해서 여러 편집기에서 언어의 특성을 활용할 수 있다는 설명 이다.