Atom1.21.0에서 지원되는 Language Server Protocol 사용

일본 시간으로 10월 4일의 심야, Atom 1.21.0이 릴리스 되었습니다.

1.21.0의 릴리스 노트에 따르면,
  • Language Server Protocol support and integration via atom-languageclient and atom-ide-ui .

  • 그래서 Language Server Protocol이 지원되는 것 같습니다.

    이번에는이 기능을 TypeScript 프로그램으로 사용해 보겠습니다.

    Atom IDE 설정



    릴리스 노트에 따르면 atom-ide-ui를 설치해야합니다.

    또한 TypeScript 용 Language Server 기능을 제공하는 ide-typescript도 설치합니다.
    apm install  atom-ide-ui ide-typescript
    
    ide-typescriptsourcegraph/javascript-typescript-langserver을 사용하여 Language Server의 기능을 제공하는 것 같습니다.

    ide-typescript를 사용해보기



    ide-typescript의 REAMDE에 따르면 다음 기능을 사용할 수 있습니다.
  • Auto completion
  • Diagnostics (errors & warnings)
  • Document outline
  • Find references
  • Go to definition
  • Hover

  • 차례로 시도해 보겠습니다.

    Auto Completion



    IDE 등으로 자주 보는 옴니 보완입니다. vscode라고 IntelliSense라고도합니다.



    진단



    직역하면 「진단」이 됩니다만, 에러나 코딩 스타일에 관한 경고등을 표시시킬 수가 있습니다.



    Document Outline



    그 파일로 정의되고 있는 변수나 클래스등을 표시해 줍니다.



    Find references



    변수 등이 어디에서 참조되는지 확인할 수 있습니다.

    대상 기호를 마우스 오른쪽 버튼으로 클릭하고 Find References를 클릭하면



    화면 하단에 패널이 열리고 참조하는 위치 목록이 표시됩니다.



    Go to definition



    기호 위에서 Ctrl 키를 누른 상태에서 클릭하면 해당 정의로 이동할 수 있습니다.



    Hover



    기호 위에 마우스를 올려 놓으면 유형 정보를 확인할 수 있습니다.



    또한, 오른쪽 가장자리의 핀 마크를 클릭하면 마우스를 이동해도 사라지지 않게 되어, 복수의 심볼의 형태 정보를 표시시켜 둘 수도 있습니다.



    TypeScript Extensibility 정보



    TypeScript2.3부터 사용할 수있게 된 Typescript Extensibility라는 기능이 있습니다.

    Language Server의 핵심 부분에 손을 넣지 않고 쉽게 기능을 추가할 수 있다는 것입니다.

    예를 들어,이 기능을 사용하여 tslint, Angular Language Service 등의 기능을 이용할 수 있습니다.

    그러나 Atom에서는 현재이 기능을 사용할 수 없습니다.
    ide-typescript는 Language Server의 기능을 제공하기 위해 내부적으로 사용하고 있습니다.

    다만, 이미 issue에는 오르고 있어, 논의되고 있는 도중과 같이이므로 기대하고 싶은 곳입니다.

    sourcegraph/javascript-typescript-langserver

    좋은 웹페이지 즐겨찾기