vscode 에서 golang 자동완성 툴로 gopls 사용하기
2019.08.13 20:47
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
끝.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
7 | 고루틴 제한 | 꿈돌이 | 2022.12.20 | 100 |
6 | go mod vendor 안될 때 | 꿈돌이 | 2021.04.20 | 172 |
5 | Go 최신 버전 확인 | 꿈돌이 | 2021.03.07 | 229 |
4 | vscode-go로 컴파일 할 때 ldflags 달아주기 | 꿈돌이 | 2020.04.28 | 342 |
3 | go 업데이트 | 꿈돌이 | 2020.04.20 | 358 |
» | vscode 에서 golang 자동완성 툴로 gopls 사용하기 | 꿈돌이 | 2019.08.13 | 15053 |
1 | go1.11 modules 사용 | 꿈돌이 | 2018.09.01 | 2082 |