github.com/v2fly/tools@v0.100.0/internal/lsp/testdata/keywords/keywords.go (about) 1 package keywords 2 3 //@rank("", type),rank("", func),rank("", var),rank("", const),rank("", import) 4 5 func _() { 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")