This test exercises fuzzy completion matching. -- flags -- -ignore_extra_diags -- go.mod -- module golang.org/lsptests go 1.18 -- fuzzy/fuzzy.go -- package fuzzy func _() { var a struct { fabar int fooBar string } a.fabar //@item(fuzzFabarField, "a.fabar", "int", "field") a.fooBar //@item(fuzzFooBarField, "a.fooBar", "string", "field") afa //@complete(" //", fuzzFabarField, fuzzFooBarField) afb //@complete(" //", fuzzFooBarField, fuzzFabarField) fab //@complete(" //", fuzzFabarField) var myString string myString = af //@complete(" //", fuzzFooBarField, fuzzFabarField) var b struct { c struct { d struct { e struct { abc string } abc float32 } abc bool } abc int } b.abc //@item(fuzzABCInt, "b.abc", "int", "field") b.c.abc //@item(fuzzABCbool, "b.c.abc", "bool", "field") b.c.d.abc //@item(fuzzABCfloat, "b.c.d.abc", "float32", "field") b.c.d.e.abc //@item(fuzzABCstring, "b.c.d.e.abc", "string", "field") // in depth order by default abc //@complete(" //", fuzzABCInt, fuzzABCbool, fuzzABCfloat) // deep candidate that matches expected type should still ranked first var s string s = abc //@complete(" //", fuzzABCstring, fuzzABCInt, fuzzABCbool) }