Two fixes for indentation problems:
1. Properly recognize multi-line strings. These start with `, not ".
2. Don't indent a line if the beginning of the line is the end of a multi-line string. This happened for instance when inserting a closing bracket after a multi-line string.
R=sameer
CC=golang-dev
https://golang.org/cl/6157044
This adds restoring the window position so that the buffer doesn't jump around after the erase/copy.
R=sameer
CC=golang-dev
https://golang.org/cl/5981055
- flag * and / as comment characters
- mark newline as a comment-ender
- include newline in go-mode-whitespace-p
Thanks Jonathan Amsterdam and Steve Yegge for the patch!
R=golang-dev, rsc
CC=golang-dev, jba, stevey
https://golang.org/cl/5938056
Fixes#3313
go-mode-backward-skip-comments is probably due for a more ambitious refactoring --- it repeats guard conditions after every nearly every movement of point.
R=sameer, r
CC=golang-dev
https://golang.org/cl/5844063
Instead of syntax-tables, an extended go-mode-cs is used for
from a font-lock callback.
Cache invalidation must happen in a before-change-function
because font-lock runs in an after-change-function, potentially
before the cache invalidation takes place.
Performance is reasonable, even with src/pkg/html/entity.go
and test/fixedbugs/bug257.go.
Fixes#2330.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5529045
If a frame has multiple windows then the windows must all be restored
after gofmt has finished and the old windows must be restored.
Before this fix, only the Go code edit window would be left.
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/5280050
Change M-x gofmt to display errors in a new buffer instead of
clobbering the current buffer.
Add gofmt-before-save, which runs gofmt when in go-mode. This
can be used with before-save-hook. Add to your .emacs:
(add-hook 'before-save-hook 'gofmt-before-save)
R=rsc, aclements, amdragon
CC=golang-dev
https://golang.org/cl/4276059
Sometimes during editing, when the buffer is emptied (for example,
as part of a call to M-x gofmt), an error is raised when
remove-text-properties is called. Ensure that these calls use point-max
instead of buffer-size to determine their end point.
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/189042
Define a new interactive function in go-mode.el called gofmt.
This function passes the current buffer through the external `gofmt`
tool and replaces the buffer with the result.
R=agl, rsc
https://golang.org/cl/154044
for keywords, built-ins, functions, and some types. It also
provides indentation that is (almost) identical to gofmt.
R=rsc
APPROVED=rsc
DELTA=509 (509 added, 0 deleted, 0 changed)
OCL=35951
CL=35994