1package keywords 2 3//@rank("", type),rank("", func),rank("", var),rank("", const),rank("", import) 4 5func _() { 6 var test int //@rank(" //", int, interface) 7 var tChan chan int 8 var _ m //@complete(" //", map) 9 var _ f //@complete(" //", func) 10 var _ c //@complete(" //", chan) 11 12 var _ str //@rank(" //", string, struct) 13 14 type _ int //@rank(" //", interface, int) 15 16 type _ str //@rank(" //", struct, string) 17 18 switch test { 19 case 1: // TODO: trying to complete case here will break because the parser wont return *ast.Ident 20 b //@complete(" //", break) 21 case 2: 22 f //@complete(" //", fallthrough, for) 23 r //@complete(" //", return) 24 d //@complete(" //", default, defer) 25 c //@complete(" //", case, const) 26 } 27 28 switch test.(type) { 29 case fo: //@complete(":") 30 case int: 31 b //@complete(" //", break) 32 case int32: 33 f //@complete(" //", for) 34 d //@complete(" //", default, defer) 35 r //@complete(" //", return) 36 c //@complete(" //", case, const) 37 } 38 39 select { 40 case <-tChan: 41 b //@complete(" //", break) 42 c //@complete(" //", case, const) 43 } 44 45 for index := 0; index < test; index++ { 46 c //@complete(" //", const, continue) 47 b //@complete(" //", break) 48 } 49 50 for range []int{} { 51 c //@complete(" //", const, continue) 52 b //@complete(" //", break) 53 } 54 55 // Test function level keywords 56 57 //Using 2 characters to test because map output order is random 58 sw //@complete(" //", switch) 59 se //@complete(" //", select) 60 61 f //@complete(" //", for) 62 d //@complete(" //", defer) 63 g //@rank(" //", go),rank(" //", goto) 64 r //@complete(" //", return) 65 i //@complete(" //", if) 66 e //@complete(" //", else) 67 v //@complete(" //", var) 68 c //@complete(" //", const) 69 70 for i := r //@complete(" //", range) 71} 72 73/* package */ //@item(package, "package", "", "keyword") 74/* import */ //@item(import, "import", "", "keyword") 75/* func */ //@item(func, "func", "", "keyword") 76/* type */ //@item(type, "type", "", "keyword") 77/* var */ //@item(var, "var", "", "keyword") 78/* const */ //@item(const, "const", "", "keyword") 79/* break */ //@item(break, "break", "", "keyword") 80/* default */ //@item(default, "default", "", "keyword") 81/* case */ //@item(case, "case", "", "keyword") 82/* defer */ //@item(defer, "defer", "", "keyword") 83/* go */ //@item(go, "go", "", "keyword") 84/* for */ //@item(for, "for", "", "keyword") 85/* if */ //@item(if, "if", "", "keyword") 86/* else */ //@item(else, "else", "", "keyword") 87/* switch */ //@item(switch, "switch", "", "keyword") 88/* select */ //@item(select, "select", "", "keyword") 89/* fallthrough */ //@item(fallthrough, "fallthrough", "", "keyword") 90/* continue */ //@item(continue, "continue", "", "keyword") 91/* return */ //@item(return, "return", "", "keyword") 92/* var */ //@item(var, "var", "", "keyword") 93/* const */ //@item(const, "const", "", "keyword") 94/* goto */ //@item(goto, "goto", "", "keyword") 95/* struct */ //@item(struct, "struct", "", "keyword") 96/* interface */ //@item(interface, "interface", "", "keyword") 97/* map */ //@item(map, "map", "", "keyword") 98/* func */ //@item(func, "func", "", "keyword") 99/* chan */ //@item(chan, "chan", "", "keyword") 100/* range */ //@item(range, "range", "", "keyword") 101