Hacker News new | ask | show | jobs
by treigerm 3613 days ago
I use an Atom extension called "gofmt" which automatically calls goimports[1] every time I save. So any unused imports will be removed and if I start to use new imports that are in my GOPATH or the standard library then it automatically adds them.

[1] https://godoc.org/golang.org/x/tools/cmd/goimports

1 comments

How does that work with undo?
I can't speak for Atom, but here's what it's like in VIM: http://i.imgur.com/GkP4Yk9.gif
Works the same in Atom.
goimports guesses the one you want and adds it back.
My question was, since goimports modifies your document (and gofmt even more so), is your undo stack preserved across saves? If so, how?
In Eclipse, this is true. The import was considered an "action" that got put into your undo stack. It was just triggered by the editor, not you.
That's a question for your text editor.

I use Sublime Text 3 with GoSublime and have noticed that the undo stack is just my changes (makes sense, the goimports is an external process), but that's cool because any CTRL+S is going to trigger goimports and so the correction of the imports is invisible and always there.

I believe it has worked well for me for undo. However some other Atom formatters have broken my undo in weird ways, namely the formatter for Node JS I had turned on to auto format on saves. I had to turn it off.