• Robert Griesemer's avatar
    Add flag -tabindent to gofmt: forces use of · dc7355a9
    Robert Griesemer authored
    tabs for indentation even if -spaces is set.
    
    Changes to gofmt:
    - added -tabindent flag
    - don't recompute parser and printer mode repeatedly
    
    Changes to go/printer:
    - provide new printing mode TabIndent
    
    Changes to tabwriter:
    - implement new mode TabIndent to use tabs independent
      of the actual padding character for leading empty columns
    - distinguish between minimal cell width and tab width
      (tabwidth is only used if the output contains tabs,
      minwidth and padding are always considered)
    - fixed and added more comments
    - some additional factoring
    
    By default, -tabindent is disabled and the default gofmt
    behavior is unchanged. By setting -spaces and -tabindent,
    gofmt will use tabs for indentation but do any other
    alignment with spaces. This permits a user to change the
    visible indentation by simply changing the editor's tab
    width and the code will remain properly aligned without
    the need to rerun gofmt.
    
    R=rsc
    https://golang.org/cl/163068
    dc7355a9
gofmt.go 3.79 KB