tools: golang.org/x/tools/refactor/rename Index | Files

package rename

import "golang.org/x/tools/refactor/rename"

Package rename contains the implementation of the 'gorename' command whose main function is in golang.org/x/tools/cmd/gorename. See the Usage constant for the command documentation.

Index

Package Files

check.go mvpkg.go rename.go spec.go util.go

Constants

const Usage = "" /* 4030 byte string literal not displayed */

Variables

var (
    // Force enables patching of the source files even if conflicts were reported.
    // The resulting program may be ill-formed.
    // It may even cause gorename to crash.  TODO(adonovan): fix that.
    Force bool

    // Diff causes the tool to display diffs instead of rewriting files.
    Diff bool

    // DiffCmd specifies the diff command used by the -d feature.
    // (The command must accept a -u flag and two filename arguments.)
    DiffCmd = "diff"

    // ConflictError is returned by Main when it aborts the renaming due to conflicts.
    // (It is distinguished because the interesting errors are the conflicts themselves.)
    ConflictError = errors.New("renaming aborted due to conflicts")

    // Verbose enables extra logging.
    Verbose bool
)

func Main

func Main(ctxt *build.Context, offsetFlag, fromFlag, to string) error

func Move

func Move(ctxt *build.Context, from, to, moveTmpl string) error

Move, given a package path and a destination package path, will try to move the given package to the new path. The Move function will first check for any conflicts preventing the move, such as a package already existing at the destination package path. If the move can proceed, it builds an import graph to find all imports of the packages whose paths need to be renamed. This includes uses of the subpackages of the package to be moved as those packages will also need to be moved. It then renames all imports to point to the new paths, and then moves the packages to their new paths.

Package rename imports 30 packages (graph) and is imported by 4 packages. Updated 2 days ago. Refresh now. Tools for package owners.