1
0
mirror of https://github.com/golang/go synced 2024-11-12 10:30:23 -07:00

cmd/gofmt: remove -tabwidth and -tabs flags

Having these flags misleads people into thinking they're acceptable
for code that "must be gofmt'd".

If an organization wishes to use gofmt internally with
different settings, they can fork gofmt trivially. But "gofmt"
as used by the community with open source Go code should not
support these old knobs.

Also removes the -comments flag.

Fixes #7101

R=r, gri
CC=golang-codereviews
https://golang.org/cl/52170043
This commit is contained in:
Brad Fitzpatrick 2014-01-14 11:10:56 -08:00
parent 077faf2851
commit 014f3dcc83
4 changed files with 16 additions and 37 deletions

View File

@ -4,6 +4,7 @@
/*
Gofmt formats Go programs.
It uses tabs (width = 8) for indentation and blanks for alignment.
Without an explicit path, it processes the standard input. Given a file,
it operates on that file; given a directory, it operates on all .go files in
@ -33,13 +34,9 @@ The flags are:
If a file's formatting is different from gofmt's, overwrite it
with gofmt's version.
Formatting control flags:
-comments=true
Print comments; if false, all comments are elided from the output.
-tabs=true
Indent with tabs; if false, spaces are used instead.
-tabwidth=8
Tab width in spaces.
Debugging support:
-cpuprofile filename
Write cpu profile to the specified file.
The rewrite rule specified with the -r flag must be a string of the form:

View File

@ -31,21 +31,20 @@ var (
doDiff = flag.Bool("d", false, "display diffs instead of rewriting files")
allErrors = flag.Bool("e", false, "report all errors (not just the first 10 on different lines)")
// layout control
comments = flag.Bool("comments", true, "print comments")
tabWidth = flag.Int("tabwidth", 8, "tab width")
tabIndent = flag.Bool("tabs", true, "indent with tabs")
// debugging
cpuprofile = flag.String("cpuprofile", "", "write cpu profile to this file")
)
const (
tabWidth = 8
printerMode = printer.UseSpaces | printer.TabIndent
)
var (
fileSet = token.NewFileSet() // per process FileSet
exitCode = 0
rewrite func(*ast.File) *ast.File
parserMode parser.Mode
printerMode printer.Mode
fileSet = token.NewFileSet() // per process FileSet
exitCode = 0
rewrite func(*ast.File) *ast.File
parserMode parser.Mode
)
func report(err error) {
@ -60,22 +59,12 @@ func usage() {
}
func initParserMode() {
parserMode = parser.Mode(0)
if *comments {
parserMode |= parser.ParseComments
}
parserMode = parser.ParseComments
if *allErrors {
parserMode |= parser.AllErrors
}
}
func initPrinterMode() {
printerMode = printer.UseSpaces
if *tabIndent {
printerMode |= printer.TabIndent
}
}
func isGoFile(f os.FileInfo) bool {
// ignore non-Go files
name := f.Name()
@ -118,7 +107,7 @@ func processFile(filename string, in io.Reader, out io.Writer, stdin bool) error
}
var buf bytes.Buffer
err = (&printer.Config{Mode: printerMode, Tabwidth: *tabWidth}).Fprint(&buf, fileSet, file)
err = (&printer.Config{Mode: printerMode, Tabwidth: tabWidth}).Fprint(&buf, fileSet, file)
if err != nil {
return err
}
@ -180,11 +169,6 @@ func main() {
func gofmtMain() {
flag.Usage = usage
flag.Parse()
if *tabWidth < 0 {
fmt.Fprintf(os.Stderr, "negative tabwidth %d\n", *tabWidth)
exitCode = 2
return
}
if *cpuprofile != "" {
f, err := os.Create(*cpuprofile)
@ -199,7 +183,6 @@ func gofmtMain() {
}
initParserMode()
initPrinterMode()
initRewrite()
if flag.NArg() == 0 {

View File

@ -40,7 +40,6 @@ func runTest(t *testing.T, in, out, flags string) {
}
initParserMode()
initPrinterMode()
initRewrite()
var buf bytes.Buffer

View File

@ -38,7 +38,7 @@ func gofmt(fset *token.FileSet, filename string, src *bytes.Buffer) error {
}
ast.SortImports(fset, f)
src.Reset()
return (&printer.Config{Mode: printerMode, Tabwidth: *tabWidth}).Fprint(src, fset, f)
return (&printer.Config{Mode: printerMode, Tabwidth: tabWidth}).Fprint(src, fset, f)
}
func testFile(t *testing.T, b1, b2 *bytes.Buffer, filename string) {