mirror of
https://github.com/golang/go
synced 2024-11-18 11:44:45 -07:00
62a0bb781d
This change reworks CL 240118 to apply gofumpt directly as a formatter, not an analyzer. Depending on how gofumpt changes, we may be able to use it as an analyzer in the future, but for now it's just easier to add it as a formatting hook. Fixes golang/go#39805 Change-Id: I227fde4b1916d8a82557f30dfca88e155136dff5 Reviewed-on: https://go-review.googlesource.com/c/tools/+/241985 Run-TryBot: Rebecca Stambler <rstambler@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com>
36 lines
1023 B
Go
36 lines
1023 B
Go
// Copyright 2019 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package hooks adds all the standard gopls implementations.
|
|
// This can be used in tests without needing to use the gopls main, and is
|
|
// also the place to edit for custom builds of gopls.
|
|
package hooks // import "golang.org/x/tools/gopls/internal/hooks"
|
|
|
|
import (
|
|
"context"
|
|
"regexp"
|
|
|
|
"golang.org/x/tools/internal/lsp/source"
|
|
"mvdan.cc/gofumpt/format"
|
|
"mvdan.cc/xurls/v2"
|
|
)
|
|
|
|
func Options(options *source.Options) {
|
|
if options.GoDiff {
|
|
options.ComputeEdits = ComputeEdits
|
|
}
|
|
options.URLRegexp = urlRegexp()
|
|
options.GofumptFormat = func(ctx context.Context, src []byte) ([]byte, error) {
|
|
return format.Source(src, format.Options{})
|
|
}
|
|
updateAnalyzers(options)
|
|
}
|
|
|
|
func urlRegexp() *regexp.Regexp {
|
|
// Ensure links are matched as full words, not anywhere.
|
|
re := regexp.MustCompile(`\b(` + xurls.Relaxed().String() + `)\b`)
|
|
re.Longest()
|
|
return re
|
|
}
|