갠적인 팁인데 저는 로컬pkg 나 여러 개의 go프로젝트가 단일 workspace에 물려있는 경우에 workspace 루트에 아래 내용의 go.mod를 만들어서 돌리고 있습니다
사실 갠적인 팁이라고 하기에도 좀 그런게, 아래 참고 링크의 첫 포스팅을 보면 애초에 스탬블러 누님께서 그렇게 쓰게 만들었다고 명시를 하고 있습니다
로컬에서 workspace 안에 내가 만든 것들은 main이든 라이브러리든 모두 패키지명을 경로에 매핑시켜서 이 go.mod에 넣어주면
go to definition 이라던지 함수 설명이라던지 하는 것들이 정상 작동하고, 개인적인 체감이겠지만 gopls의 캐싱도 빠르게 되었습니다
module .
go 1.15
replace (
패키지명 => ./실제경로
)
근데 이게 Go 1.14 에서는 별 문제가 없었는데 Go 1.15 에서는 온 전신에 시뻘건 거 천지라서 메모용으로 쓰는 검니다
vscode 의 settings.json 을 건드리면 됨니다
usePlaceholders 말고, experimentalWorkspaceModule 입니다
usePlaceholder는 자동완성 할 때 변수 정의도 같이 찍어주는검니다
"gopls": {
"usePlaceholders": true, // add parameter placeholders when completing a function
"experimentalWorkspaceModule": true
},
https://github.com/golang/go/issues/36899#issuecomment-729951762
끝
그냥 GOPATH에 추가해주면 되지 않나요
gopath에 몰아넣고 쓰는거를 좋아하지 않아서영 ㅎ vscode에 inferGopath 라고 gopath 위치를 작업폴더로 잡아주는 기능이 있는데 이 기능으로 dep 쓸 때도 지금 본문에 module 이랑 비슷한 모양새로 썼었어요 ㅇㅂㅇ