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")