GoLand 2020.1에서는 Go 모듈 지원을 위한 다양한 업그레이드는 물론 사용자의 입력이 거의 필요하지 않은 코드 편집 기능과 확장된 코드 완성 기능이 제공됩니다.
또한 새로운 코드 검사, 빠른 수정을 비롯해 프로젝트를 생성하거나 로드하지 않고 텍스트 에디터에서 파일을 열 수 있는 새로운 LightEdit 모드, 지능적인 철자 및 문법 검사, 웹 개발 및 데이터베이스 작업을 위한 새로운 기능 등의 기타 개선 사항이 추가되었습니다.
이에 관한 자료를 읽지 않고 대화식으로 확인하고 싶으신가요? IDE 내에서 Features of GoLand 2020.1(GoLand 2020.1의 기능) 튜토리얼을 완료하세요.
이제 Go 1.13의 환경 변수인 GOPROXY
, GOPRIVATE
, GOSUMDB
, GONOPROXY
, GONOSUMB
가 지원됩니다.
Go Modules(Go 모듈) 프로젝트 템플릿을 사용해 이러한 변수의 기본값을 구성하세요. 새로운 Environment Variables(환경 변수) 대화상자를 열려면 Environment(환경) 필드에서 Browse(열기) 아이콘을 클릭하기만 하면 됩니다.
go.mod
파일에서 go
, module
, require
, replace
, exclude
키워드, 종속성의 이름, 로컬 경로 교체에 대한 코드 완성이 제공됩니다.
Rename(이름 변경) 및 Move(이동) 리팩터링도 이용할 수 있습니다. replace
문에서 참조되는 디렉터리의 이름이 변경 또는 이동되면 GoLand에서 go.mod 파일의 경로를 적절히 변경합니다.
이제 Project(프로젝트) 뷰를 통해 Find Usages(사용 위치 검색)를 호출하여 go.mod
파일에서 사용되는 특정 디렉터리 경로가 사용되는 위치를 탐색할 수도 있습니다.
GoLand 2020.1에서는 Alt-Enter를 눌러 누락된 종속성을 가져오거나 사용되지 않는 항목을 제거할 수 있습니다.
마지막으로, 이 새 버전에서는 로컬 경로 대체가 있을 경우 커밋 전에 알림이 표시되므로 실수로 커밋할 위험이 없습니다.
GoLand 2020.1은 오류 처리 패턴을 완성하도록 if err != nil { ... }
을 제안합니다. 간단히 표현식 내에 if
를 입력하세요.
type
키워드 또는 struct
및 interface
를 입력하기만 하면 구조체 및 인터페이스 유형을 더 빠르게 정의할 수 있습니다.
Fill Fields(필드 채우기) 액션은 서식 지정 규칙에서 요구되는 경우 콜론 뒤에 공백을 추가합니다. 또한 복합 리터럴 선언에서 구문 끝에 쉼표를 추가합니다.
이제 맵을 작업할 때 키 유형을 완료하면 코드 완성 기능에서 커서를 닫는 괄호 뒤로 이동합니다.
함수의 반환 유형의 경우 코드 완성 기능은 해당 반환값 유형에 적합한 지역 변수 및 제로 값을 제안합니다.
Smart Code Completion(스마트 코드 완성)은 구조체 이니셜라이저에 대한 포인터를 제안합니다.
또한 어설션 및 유형 switch case에서 호환되는 유형을 제안합니다.
유형 어설션에서는 대입된 변수의 유형을 제공합니다.
마지막으로, 표현식에서 가능한 포인터에 대한 제안 목록을 제공합니다.
주석에 대한 새로운 Basic Code Completion(기본 코드 완성)이 추가되어 문서 작성이 훨씬 간편해졌습니다. 이 기능은 현재 패키지 선언의 이름과 함수 및 메서드의 매개변수 이름을 제안합니다.
그 외에도 Basic Code Completion은 리터럴과 변환도 제안합니다.
GoLand 2020.1은 값이 여러 개인 반환 함수의 시그너처를 작성할 때 쉼표 뒤에 오는 반환 유형의 주위에 괄호를 추가합니다.
문자열 리터럴에 일부 텍스트를 붙여넣으면 ID는 큰따옴표를 이스케이프합니다.
사용자가 아무 것도 하지 않아도 작동하는 기능에 관해 자세히 알아보려면 GoLand Editing Features You Didn’t Know About(당신이 몰랐던 GoLand 편집 기능)이라는 글을 읽어보세요.
Go 1.14에서 중첩 인터페이스를 포함할 수 있도록 지원을 추가하였으므로 GoLand에도 이를 적용했습니다. 사용자가 중첩 인터페이스를 사용하는 유형의 여러 측면을 설명할 때 GoLand는 이에 대한 중복된 메서드를 오류로 보고하지 않습니다.
Go 1.14에서 벤더링 모드는 모듈 루트에 벤더 디렉터리가 포함된 경우 자동으로 활성화됩니다. 이에 따라 GoLand 2020.1에서도 Go 1.13 및 이전 버전에 대해 유사한 동작을 구현하기로 했습니다. GoLand는 vendor/ 폴더가 모듈에 있는 경우 해당 벤더 / 폴더로 가져오기를 자동으로 처리합니다.
디버그 또는 코어 덤프 분석을 실행할 때 고루틴을 더 쉽게 구별할 수 있도록 프로파일러 라벨을 추가했습니다.
자세한 내용을 알아보려면 How to Find Goroutines During Debugging(디버그 중 고루틴을 찾는 방법)을 읽어보세요.
이제 매크로를 매개변수로 사용하여 애플리케이션을 실행하거나 디버그할 수 있습니다. Run/Debug Configurations(실행/디버그 구성) 대화상자에서 Go Tool(Go 도구) 또는 Program arguments(프로그램 인수) 필드의 +를 클릭하여 사용 가능한 매크로 목록이 표시된 새 Macros(매크로) 대화상자를 여세요.
또한 이제 프로젝트에 구성 파일을 저장할 수 있습니다. Run/Debug Configurations 대화상자의 상단에서 Store as project file(프로젝트 파일로 저장) 옵션을 선택하세요.
.else
접미어 완성 템플릿은 if
문을 빠르게 추가하여 표현식이 false인지 확인합니다.
Alt+Enter를 눌러 비서식 지정 호출을 서식 지정 호출로 빠르게 변경하세요.
이제 Create variable(변수 생성) 빠른 수정에 기대 유형 힌트가 표시되어 올바른 값을 입력하기가 수월해집니다.
이 새로운 코드 검사는 비 포인터 리시버에 있는 포인터 메서드의 유효하지 않은 호출에 대해 경고하고 빠른 수정을 제공합니다.
Invalid conversions of uintptr to unsafe.Pointer(uintptr에서 unsafe.Pointer로의 잘못된 변환) 코드 검사는 정수를 포인터로 변환할 때 uintptr
및 unsafe.Pointer
가 잘못 사용된 경우 경고합니다.
Unmarshal is called with incorrect argument(Unmarshal을 잘못된 인수로 호출)라는 검사는 json.Unmarshal
호출 및 encoding/json
, encoding/xml
, encoding/gob
패키지의 유사 함수를 분석합니다.
Locks mistakenly passed by value(값에서 잘못 전달한 lock)라는 코드 검사는 lock이 포함된 값을 실수로 복사하지 않도록 도와줍니다.
선언 그룹을 빠르게 생성할 수 있는 새로운 템플릿이 추가되었습니다. 템플릿에는 consts
, vars
, types
, imports
등이 있습니다. 이러한 템플릿 중 하나를 사용하면 GoLand에서 선언 이름 주위에 괄호를 추가합니다.
fori
템플릿은 클래식한 for-loop의 상용구를 삽입합니다.
Extract Method(메서드 추출) 리팩터링은 상위 함수 및 메서드 매개변수의 기존 순서를 유지합니다.
이제 Rename(이름 변경) 리팩터링은 선언 이름변경을 자동으로 탐지합니다. 즉, 선언 이름을 사용자가 직접 변경하는 경우 IDE에서 여백 아이콘을 표시하여 해당 사용 위치의 이름을 모두 변경하도록 제안합니다.
Navigate to implementations(구현으로 이동)Ctrl+Alt+B) 및 Navigate to Declaration or Usages(선언 또는 사용 위치로 이동)(Ctrl+B)는 현재 프로젝트의 결과를 먼저 표시합니다.
또한 이제 Find Usages(사용 위치 검색)(Alt+F7) 액션에서 인터페이스 메서드의 사용 위치를 기본적으로 항상 검색합니다. 현재 메서드의 사용 위치를 예전처럼 검색하려면 Alt+Shift+Ctrl+F7을 사용하세요.
이제 새로운 커밋 도구 창에 Local Changes(로컬 변경) 및 Shelf(보관) 탭이 통합되었습니다. 이 도구 창에서는 Diff 확인, 커밋할 파일 및 청크 선택, 커밋 메시지 입력과 같은 모든 커밋 관련 작업을 실행할 수 있습니다. 커밋 도구 창은 화면 왼쪽에 세로로 배치되어 에디터 전체에 Diff를 표시할 수 있습니다.
Branches(브랜치) 팝업이 몇가지 개편되었습니다.
Interactively Rebase from Here(여기에서 상호작용으로 리베이스) 기능이 전면 개편되었습니다. 이 대화상자에서는 이전 커밋을 편집, 결합, 삭제하여 커밋 기록을 순차적으로 더 이해하기 쉽게 구성할 수 있습니다.
이 대화상자를 실행하려면 Git 도구 창의 Log(로그) 탭으로 이동하여 편집하려는 일련의 커밋에서 가장 오래된 커밋을 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Interactively Rebase from Here를 선택하세요.
새로운 스마트 인텐션 및 검사 기능(Alt+Enter)을 통해 코딩 시간을 단축하세요! 예를 들어, 기존 코드를 JavaScript 및 TypeScript 최신 버전에 도입된 구문인 optional chaining/nullish coalescing으로 빠르게 변환할 수 있습니다.
이제 JavaScript 및 TypeScript에서 문서 팝업이 더욱 유용한 정보를 표시합니다. 심볼의 유형, 표시 설정 및 심볼이 정의된 위치와 같은 세부 정보가 이에 포함됩니다.