diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:31:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-16 19:31:31 +0000 |
commit | af06fce89246dcb464e3431830a5f8e2b24d9e91 (patch) | |
tree | 4cbf5a02dba5a6a26c656e7ba839ccd91bc392c1 /man/gofmt.1 | |
parent | Initial commit. (diff) | |
download | golang-defaults-af06fce89246dcb464e3431830a5f8e2b24d9e91.tar.xz golang-defaults-af06fce89246dcb464e3431830a5f8e2b24d9e91.zip |
Adding upstream version 2:1.20~2.upstream/2%1.20_2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/gofmt.1')
-rw-r--r-- | man/gofmt.1 | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/man/gofmt.1 b/man/gofmt.1 new file mode 100644 index 0000000..656d3de --- /dev/null +++ b/man/gofmt.1 @@ -0,0 +1,138 @@ +.\" Hey, EMACS: -*- nroff -*- +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.TH GOFMT 1 "2021-09-06" +.\" Please adjust this date whenever revising the manpage. +.SH NAME +gofmt \- format Go programs +.SH SYNOPSIS +.B gofmt +.RI [ flags ] +.RI [ "path ..." ] +.SH DESCRIPTION +Gofmt formats Go programs. It uses tabs for indentation and blanks for +alignment. Alignment assumes that an editor is using a fixed-width font. +.P +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 +that directory, recursively. (Files starting with a period are ignored.) By +default, gofmt prints the reformatted sources to standard output. +.SH OPTIONS +.TP +.B \-d +Do not print reformatted sources to standard output. +If a file's formatting is different than gofmt's, print diffs +to standard output. +.TP +.B \-e +Print all (including spurious) errors. +.TP +.B \-l +Do not print reformatted sources to standard output. +If a file's formatting is different from gofmt's, print its name +to standard output. +.TP +.B \-r rule +Apply the rewrite rule to the source before reformatting. +.TP +.B \-s +Try to simplify code (after applying the rewrite rule, if any). +.TP +.B \-w +Do not print reformatted sources to standard output. +If a file's formatting is different from gofmt's, overwrite it +with gofmt's version. If an error occurred during overwriting, +the original file is restored from an automatic backup. +.P +Debugging support: +.TP +.BI "\-cpuprofile " filename +Write cpu profile to the specified file. +.P +The rewrite rule specified with the \-r flag must be a string of the +form: + +.Vb 6 +\& pattern -> replacement +.Ve +.P +Both pattern and replacement must be valid Go expressions. In the pattern, +single-character lowercase identifiers serve as wildcards matching arbitrary +sub-expressions; those expressions will be substituted for the same +identifiers in the replacement. +.P +When gofmt reads from standard input, it accepts either a full Go program or +a program fragment. A program fragment must be a syntactically valid +declaration list, statement list, or expression. When formatting such a +fragment, gofmt preserves leading indentation as well as leading and +trailing spaces, so that individual sections of a Go program can be +formatted by piping them through gofmt. +. +.SH EXAMPLES +To check files for unnecessary parentheses: + +.Vb 6 +\& gofmt \-r '(a) \-> a' \-l *.go +.Ve + +To remove the parentheses: + +.Vb 6 +\& gofmt \-r '(a) \-> a' \-w *.go +.Ve + +To convert the package tree from explicit slice upper bounds to implicit +ones: + +.Vb 6 +\& gofmt \-r 'α[β:len(α)] \-> α[β:]' \-w $GOROOT/src/pkg +.Ve +. +.SS The simplify command +. +When invoked with \-s gofmt will make the following source transformations +where possible. + +.Vb 6 +\& An array, slice, or map composite literal of the form: +\& []T{T{}, T{}} +\& will be simplified to: +\& []T{{}, {}} +.Ve + +.Vb 6 +\& A slice expression of the form: +\& s[a:len(s)] +\& will be simplified to: +\& s[a:] +.Ve + +.Vb 6 +\& A range of the form: +\& for x, _ = range v {...} +\& will be simplified to: +\& for x = range v {...} +.Ve + +.Vb 6 +\& A range of the form: +\& for _ = range v {...} +\& will be simplified to: +\& for range v {...} +.Ve +.P +This may result in changes that are incompatible with earlier versions of +Go. +.SH AUTHOR +This manual page was written by Michael Stapelberg <stapelberg@debian.org> +and is maintained by the +Debian Go Compiler Team <team+go-compiler@tracker.debian.org> +based on the output of 'go doc cmd/gofmt' +for the Debian project (and may be used by others). |