pretty even-handed.
> The other day I had to make a bunch of fields public to satisfy Go's encoding package, and code needed to be updated everywhere with a manual find/replace (the same string was used in other contexts too so it couldn't be done automatically)
gofmt has syntax-level replacements. So you could do:
`gofmt -w -r 'unexportedName -> ExportedName' *.go`
or something similar, and it would do the correct thing, ignoring the string matches where it appears in other contexts.