gopls-lsp

TotalClaw 作者 totalclaw

Go 语言服务器 (gopls) 为 .go 文件提供代码智能、重构和分析。在处理需要自动完成、转到定义、查找引用、错误检测或重构支持的 Go 代码时使用。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw skills install shop:totalclaw:totalclaw~bowen31337-gopls-lsp
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~bowen31337-gopls-lsp/file -o bowen31337-gopls-lsp.md
## 概述(中文)

Go 语言服务器 (gopls) 为 .go 文件提供代码智能、重构和分析。在处理需要自动完成、转到定义、查找引用、错误检测或重构支持的 Go 代码时使用。

## 原文

# gopls LSP

Go language server integration providing comprehensive code intelligence through gopls (the official Go language server).

## Capabilities

- **Code intelligence**: Autocomplete, go-to-definition, find references
- **Error detection**: Real-time diagnostics for compilation errors and issues
- **Refactoring**: Rename symbols, extract function, organize imports
- **Analysis**: Static analysis, code suggestions, unused code detection
- **Supported extensions**: `.go`

## Installation

Install gopls using the Go toolchain:

```bash
go install golang.org/x/tools/gopls@latest
```

**Important**: Make sure `$GOPATH/bin` (or `$HOME/go/bin`) is in your PATH.

Verify installation:
```bash
gopls version
```

## Usage

The language server runs automatically in LSP-compatible editors. For manual operations:

### Format code
```bash
gofmt -w file.go
```

### Run linter
```bash
go vet ./...
```

### Build and test
```bash
go build ./...
go test ./...
```

## Configuration

Create `gopls.yaml` in your project or workspace for custom settings:

```yaml
analyses:
  unusedparams: true
  shadow: true
completeUnimported: true
staticcheck: true
```

Or configure via environment:
```bash
export GOPLS_CONFIG='{"staticcheck": true, "analyses": {"unusedparams": true}}'
```

## Integration Pattern

When editing Go code:
1. gopls provides real-time diagnostics in LSP editors
2. Run `go fmt` or `gofmt` to format code
3. Use `go vet` for additional static analysis
4. Run tests with `go test` before committing

## Common Go Commands

- `go mod init <module>` - Initialize Go module
- `go mod tidy` - Clean up dependencies
- `go get <package>` - Add dependency
- `go build` - Compile packages
- `go run main.go` - Run program
- `go test` - Run tests
- `go vet` - Report suspicious constructs

## More Information

- [gopls Documentation](https://pkg.go.dev/golang.org/x/tools/gopls)
- [GitHub Repository](https://github.com/golang/tools/tree/master/gopls)
- [Go Official Documentation](https://go.dev/doc/)