summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2023-09-06 11:55:09 +0200
committerMarc Vertes <mvertes@free.fr>2023-09-06 11:55:09 +0200
commit555e5bfc03daaf40c78eb2ad540cd73ec4ae2831 (patch)
tree9261e96271d544d2cc9ef8c4402cf065d6c4de63 /lang
parent6dd78f44adf6fb032d0ecd9db813651b9524fcac (diff)
scanner: add automatic insertion of semi-colon after newline
As specified in the Go specification, adapted to the following: - the scanner recognise blocks as tokens - the scanner is multi-language: define keywords in scanner spec - as a result, we define how to skip semi-colon insertion rather than how to add it.
Diffstat (limited to 'lang')
-rw-r--r--lang/golang/go.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/lang/golang/go.go b/lang/golang/go.go
index 5075329..47ca6db 100644
--- a/lang/golang/go.go
+++ b/lang/golang/go.go
@@ -53,6 +53,31 @@ var GoScanner = &scanner.Scanner{
"/*": scanner.CharStr,
"//": scanner.CharStr | scanner.ExcludeEnd | scanner.EosValidEnd,
},
+ SkipSemi: map[string]bool{
+ "++": true,
+ "--": true,
+ "case": true,
+ "chan": true,
+ "const": true,
+ "default": true,
+ "defer": true,
+ "else": true,
+ "for": true,
+ "func": true,
+ "go": true,
+ "goto": true,
+ "if": true,
+ "import": true,
+ "interface": true,
+ "map": true,
+ "package": true,
+ "range": true,
+ "select": true,
+ "struct": true,
+ "switch": true,
+ "type": true,
+ "var": true,
+ },
}
var GoParser = &parser.Parser{