clean comment reparser
This commit is contained in:
parent
bdc2e4fadf
commit
40fbd38712
8
Makefile
8
Makefile
|
@ -92,6 +92,12 @@ clean-more:
|
|||
ls -l autogenpb autogenpb.last
|
||||
-rm -f autogenpb.2*
|
||||
|
||||
reformat-signal.proto:
|
||||
reformat-signal.proto-comments:
|
||||
git checkout example/fruit.proto
|
||||
make -C example proto-reformat-restore
|
||||
make -C example proto-reformat-comments
|
||||
|
||||
reformat-signal.proto-full:
|
||||
git checkout example/fruit.proto
|
||||
make -C example proto-reformat-restore
|
||||
make -C example proto-reformat-full
|
||||
|
|
|
@ -108,4 +108,6 @@ proto-reformat-restore:
|
|||
|
||||
proto-reformat-comments:
|
||||
../autogenpb --proto signal.proto --format-comments
|
||||
# autogenpb --proto SignalService.proto --format
|
||||
|
||||
proto-reformat-full:
|
||||
autogenpb --proto signal.proto --format
|
||||
|
|
|
@ -321,14 +321,14 @@ message Chat {
|
|||
uint32 expireTimerVersion = 10;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call Links have some associated data including a call, but unlike other recipients
|
||||
* are not tied to threads because they do not have messages associated with them.
|
||||
*
|
||||
* note:
|
||||
* - room id can be derived from the root key
|
||||
* - the presence of an admin key means this user is a call admin
|
||||
*/
|
||||
//
|
||||
// Call Links have some associated data including a call, but unlike other recipients
|
||||
// are not tied to threads because they do not have messages associated with them.
|
||||
//
|
||||
// note:
|
||||
// - room id can be derived from the root key
|
||||
// - the presence of an admin key means this user is a call admin
|
||||
//
|
||||
message CallLink {
|
||||
enum Restrictions {
|
||||
UNKNOWN = 0; // Interpret as "Admin Approval"
|
||||
|
|
3
main.go
3
main.go
|
@ -18,6 +18,7 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/alexflint/go-arg"
|
||||
"github.com/go-cmd/cmd"
|
||||
|
@ -63,6 +64,8 @@ func main() {
|
|||
}
|
||||
|
||||
if argv.Format {
|
||||
protoReformatComments(argv.Proto)
|
||||
time.Sleep(5 * time.Second)
|
||||
protoReformat(argv.Proto)
|
||||
okExit("")
|
||||
}
|
||||
|
|
|
@ -54,8 +54,6 @@ func protoReformatComments(filename string) error {
|
|||
}
|
||||
|
||||
var newfile string
|
||||
newfile = commentPreprocessorFull(string(data))
|
||||
saveFile(filename, newfile)
|
||||
|
||||
log.Info("filename", filename)
|
||||
alltest := makeLineIter(data)
|
||||
|
@ -64,7 +62,7 @@ func protoReformatComments(filename string) error {
|
|||
newfile += fmt.Sprintln(commentPreprocessor(line))
|
||||
}
|
||||
newfile = commentPreprocessorFull(newfile)
|
||||
// saveFile(filename, newfile)
|
||||
saveFile(filename, newfile)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -476,14 +474,13 @@ func (it *LinesScanner) NextRaw() string {
|
|||
return it.things[it.index-1]
|
||||
}
|
||||
|
||||
// cleans out comments
|
||||
// trims whitespace
|
||||
func (it *LinesScanner) Next() string {
|
||||
if it.index-1 == len(it.things) {
|
||||
fmt.Println("Next() error in LinesScanner", it.index)
|
||||
}
|
||||
// out := commentPreprocessor(it.things[it.index-1])
|
||||
out := it.things[it.index-1]
|
||||
out = commentPreprocessor(out)
|
||||
return strings.TrimSpace(out)
|
||||
// return out
|
||||
}
|
||||
|
@ -527,9 +524,56 @@ func commentPreprocessor(line string) string {
|
|||
// thing
|
||||
func commentPreprocessorFull(full string) string {
|
||||
// Match all /* comment */ blocks
|
||||
re := regexp.MustCompile(`/\*([^*]+)\*/`)
|
||||
// re := regexp.MustCompile(`/\*([^*]+)\*/`)
|
||||
re := regexp.MustCompile(`(?s)/\*(.*?)\*/`)
|
||||
|
||||
return re.ReplaceAllStringFunc(full, func(s string) string {
|
||||
return strings.ToUpper(s)
|
||||
log.Info("FOUND:\n", s)
|
||||
lines := strings.Split(s, "\n")
|
||||
var cleaned []string
|
||||
|
||||
for _, line := range lines {
|
||||
trimmed := strings.TrimSpace(line)
|
||||
|
||||
switch {
|
||||
case strings.HasPrefix(trimmed, "/*"):
|
||||
trimmed = trimCommentPrefix(trimmed)
|
||||
case strings.HasPrefix(trimmed, "*/"):
|
||||
trimmed = strings.TrimPrefix(trimmed, "*/")
|
||||
case strings.HasPrefix(trimmed, "*"):
|
||||
trimmed = strings.TrimPrefix(trimmed, "*")
|
||||
}
|
||||
trimmed = "// " + trimmed
|
||||
|
||||
cleaned = append(cleaned, strings.TrimSpace(trimmed))
|
||||
}
|
||||
|
||||
s = strings.Join(cleaned, "\n")
|
||||
log.Info("NOW:\n", s)
|
||||
return s
|
||||
})
|
||||
}
|
||||
|
||||
func trimCommentPrefix(line string) string {
|
||||
trimmed := strings.TrimSpace(line)
|
||||
|
||||
if strings.HasPrefix(trimmed, "/") {
|
||||
i := 1
|
||||
for i < len(trimmed) && trimmed[i] == '*' {
|
||||
i++
|
||||
}
|
||||
if i > 1 {
|
||||
return strings.TrimSpace(trimmed[i:])
|
||||
}
|
||||
}
|
||||
|
||||
if strings.HasPrefix(trimmed, "*") {
|
||||
return strings.TrimSpace(trimmed[1:])
|
||||
}
|
||||
|
||||
if trimmed == "*/" {
|
||||
return ""
|
||||
}
|
||||
|
||||
return trimmed
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue