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를 사용하면 하나의 서버를 통해서 여러 편집기에서 언어의 특성을 활용할 수 있다는 설명 이다.