이 저장소는 주로 Go 프로그램의 정적 분석을 위한 다양한 도구와 패키지로 구성된 golang.org/x/tools
모듈을 제공하며 그 중 일부는 아래에 나열되어 있습니다. 패키지에 대한 자세한 내용을 보려면 위의 "참조로 이동" 링크를 사용하세요.
또한 루트 패키지가 Go용 LSP(언어 서버 프로토콜) 서버인 golang.org/x/tools/gopls
모듈도 포함되어 있습니다. LSP 서버는 프로젝트의 소스 코드를 분석하고 VSCode 및 Vim과 같은 다양한 편집기의 요청에 응답하여 IDE와 유사한 기능을 지원할 수 있습니다.
선택한 명령:
cmd/goimports
go fmt
와 같은 Go 프로그램의 형식을 지정하고 파일을 편집한 후 파일에 필요한 모든 패키지에 대한 import 문을 추가로 삽입합니다.cmd/callgraph
Go 프로그램의 호출 그래프를 인쇄합니다.cmd/digraph
텍스트 표기법으로 방향 그래프를 조작하기 위한 유틸리티입니다.cmd/stringer
"enum" 유형에 대한 선언( String
메소드 포함)을 생성합니다.cmd/toolstash
는 여러 버전의 Go 툴체인 작업을 단순화하는 유틸리티입니다.이러한 명령은 다음과 같은 명령으로 가져올 수 있습니다.
go install golang.org/x/tools/cmd/goimports@latest
선택한 패키지:
go/ssa
분석 도구에서 사용할 수 있도록 일반적인 컴파일러와 유사한 Go 프로그램용 정적 단일 할당 형식(SSA) 중간 표현(IR)을 제공합니다.
go/packages
소스 코드에서 전체 Go 프로그램을 로드하고, 구문 분석하고, 유형을 확인하기 위한 간단한 인터페이스를 제공합니다.
go/analysis
Go 프로그램의 모듈식 정적 분석을 위한 프레임워크를 제공합니다.
go/callgraph
서로 다른 절충안을 적용한 다양한 알고리즘을 사용하여 Go 프로그램의 호출 그래프를 제공합니다.
go/ast/inspector
분석 도구에서 사용하기 위해 Go 구문 분석 트리를 탐색하는 최적화된 수단을 제공합니다.
go/cfg
Go 기능에 대한 간단한 CFG(제어 흐름 그래프)를 제공합니다.
go/gcexportdata
및 go/gccgoexportdata
표준 및 gccgo
컴파일러에서 사용하는 유형 정보가 포함된 바이너리 파일을 읽고 씁니다.
go/types/objectpath
go/types
API에서 명명된 항목('객체')에 대한 안정적인 명명 체계를 제공합니다.
수많은 다른 패키지가 더 난해한 기능을 제공합니다.
이 저장소는 코드 변경을 위해 Gerrit를 사용합니다. 변경 사항을 제출하는 방법을 알아보려면 https://go.dev/doc/contribute를 참조하세요.
Git 저장소는 https://go.googlesource.com/tools입니다.
도구 저장소의 주요 이슈 추적기는 https://go.dev/issues에 있습니다. 문제를 쉽게 찾을 수 있도록 제목 줄에 "x/tools/(your subdir):"라는 접두사를 붙이세요.
이 저장소는 JS 및 CSS 파일 형식을 지정하기 위해 prettier를 사용합니다.
사용되는 prettier
버전은 1.18.2 입니다.
변경 사항을 제출하기 전에 모든 JS 및 CSS 코드를 이를 통해 실행하는 것이 좋습니다. 그러나 이는 CI에서 시행하는 엄격한 요구 사항은 아닙니다.