메뉴 건너뛰기

enjoyTools.net

GoPls 소개

 

 

gocode-gomod, godef-gomod를 쓰지 않아도 될 것 같다.

반응속도도 매우 빠르다

 

* 준비(=캐싱 완료)되었는지 확인

  - Outline 또는 윤곽에서 확인.

  - 소스 또는 소스에 포함된 Package 규모가 크면 캐싱에 시간이 다소 소요된다.

 

* 소스 위치가 작업폴더 root가 아닌 경우

  - root에 자동 생성되는 go.mod에 관련 패키지를 기입한다. / 아래 gopls-try 링크 참고

  - root에 go.mod가 자동 생성되지 않으면 직접 생성해야 한다.

 

* Go Deginition 안 되는 경우

  - Language Server 를 다시 실행한다. - F1 > Go: Restart Language Server

  - Local Package 형태로 자체 패키지 사용할 때 두 번째 실행에서 안 된다. 다시 실행하면 이후에는 문제없다.

  - vscode-go의 문제 같은데 아직은 자주 발생해서 단축키로 설정해서 쓰고 있다.

 

* Formatting 할 때 커서 위치 리셋

  - 아래 둘 중 하나 선택

    * vscode 창 우하단에 표시되는 개행문자를 CRLF 말고 LF로 사용한다

      -> 신규파일은 vscode 설정에 "files.eol": "\n" 옵션 추가로 해결된다

    * goimport 등의 기존 툴링을 유지한다.  / 출처 또는 아래 gopls-try 링크 참고

  - 윈도우계열에서만 생기는 문제 같다.

  - 출처:

    https://github.com/golang/go/issues/31937#issuecomment-510084669

    https://github.com/microsoft/vscode-languageserver-node/issues/493

  - 기존 툴링을 유지하니까 gopls 재시작 이후 goimport 동작이 안되는 경우가 있다.

    번거롭지만 걍 파일을 LF로 저장하고 gopls의 모든 기능을 사용하는게 좋겠다.

  - 이렇게 하니까 git이 말썽이다. LF로 저장한 파일을 다른 컴퓨터에서 땡겨오니 CRLF로 도로 바뀐다.

    git core.eol = lf 같은 옵션을 쓰면 해결이 되려나.

 

# 개별 프로젝트 마다

git config core.eol lf

git config core.autocrlf input

 

# 또는 전역 설정

 

git config --global core.eol lf

git config --global core.autocrlf input

 

 

* import 링크 제거 - 밑줄 보기 싫을 때

  - vscode 설정에서 go.languageServerExperimentalFeatures 에 "documentLink": false 옵션 추가

 

참고: https://github.com/practice-golang/gopls-try

 

끝.