Commit 1fede304 authored by Robert Griesemer's avatar Robert Griesemer

more comment formatting:

- preserve (some) indentation of comment text for /*-style comments
  even if the first comment line does not contain any text that might
  suggest the "correct" indentation
- enabled because otherwise existing larger comments get re-formatted
  (this will not introduce a lot of changes since comments of this
  kind - until now - were not changed with respect to indentation)

R=rsc
http://go/go-review/1016047
parent 7f534246
......@@ -443,9 +443,26 @@ func stripCommonPrefix(lines [][]byte) {
// Determine the white space on the first line after the /*
// and before the beginning of the comment text, assume two
// blanks instead of the /* unless the first character after
// the /* is a tab. This whitespace may be found as suffix
// in the common prefix.
// the /* is a tab. If the first comment line is empty but
// for the opening /*, assume up to 3 blanks or a tab. This
// whitespace may be found as suffix in the common prefix.
first := lines[0];
if isBlank(first[2 : len(first)]) {
// no comment text on the first line:
// reduce prefix by up to 3 blanks or a tab
// if present - this keeps comment text indented
// relative to the /* and */'s if it was indented
// in the first place
i := len(prefix);
for n := 0; n < 3 && i > 0 && prefix[i-1] == ' '; n++ {
i--;
}
if i == len(prefix) && i > 0 && prefix[i-1] == '\t' {
i--;
}
prefix = prefix[0:i];
} else {
// comment text on the first line
suffix := make([]byte, len(first));
n := 2;
for n < len(first) && first[n] <= ' ' {
......@@ -466,6 +483,7 @@ func stripCommonPrefix(lines [][]byte) {
prefix = prefix[0 : len(prefix) - len(suffix)];
}
}
}
// Handle last line: If it only contains a closing */, align it
// with the opening /*, otherwise align the text with the other
......
......@@ -168,6 +168,53 @@ func _() {
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line */
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line */
}
/*
* line
* of
......@@ -194,6 +241,18 @@ blank line in middle:
with no leading spaces on blank line.
*/
/*
aligned in middle
here
not here
*/
/*
blank line in middle:
with no leading spaces on blank line.
*/
func _() {
/*
* line
......
......@@ -168,6 +168,53 @@ func _() {
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line */
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line
*/
}
func _() {
/*
freestanding comment
aligned line
aligned line */
}
/*
* line
* of
......@@ -194,6 +241,18 @@ blank line in middle:
with no leading spaces on blank line.
*/
/*
aligned in middle
here
not here
*/
/*
blank line in middle:
with no leading spaces on blank line.
*/
func _() {
/*
* line
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment