gotools/gopls/internal/test/marker/testdata/selectionrange/selectionrange.txt

This test checks selection range functionality.

-- foo.go --
package foo

import "time"

func Bar(x, y int, t time.Time) int {
	zs := []int{1, 2, 3} //@selectionrange("1", a)

	for _, z := range zs {
		x = x + z + y + zs[1] //@selectionrange("1", b)
	}

	return x + y //@selectionrange("+", c)
}
-- @a --
Ranges 0:
	5:13-5:14 "1"
	5:7-5:21 "[]int{1, 2, 3}"
	5:1-5:21 "zs := []int{1, 2, 3}"
	4:36-12:1 "{\\n\tzs := []int{...range(\"+\", c)\\n}"
	4:0-12:1 "func Bar(x, y i...range(\"+\", c)\\n}"
	0:0-12:1 "package foo\\n\\nim...range(\"+\", c)\\n}"
-- @b --
Ranges 0:
	8:21-8:22 "1"
	8:18-8:23 "zs[1]"
	8:6-8:23 "x + z + y + zs[1]"
	8:2-8:23 "x = x + z + y + zs[1]"
	7:22-9:2 "{\\n\t\tx = x + z +...ange(\"1\", b)\\n\t}"
	7:1-9:2 "for _, z := ran...ange(\"1\", b)\\n\t}"
	4:36-12:1 "{\\n\tzs := []int{...range(\"+\", c)\\n}"
	4:0-12:1 "func Bar(x, y i...range(\"+\", c)\\n}"
	0:0-12:1 "package foo\\n\\nim...range(\"+\", c)\\n}"
-- @c --
Ranges 0:
	11:8-11:13 "x + y"
	11:1-11:13 "return x + y"
	4:36-12:1 "{\\n\tzs := []int{...range(\"+\", c)\\n}"
	4:0-12:1 "func Bar(x, y i...range(\"+\", c)\\n}"
	0:0-12:1 "package foo\\n\\nim...range(\"+\", c)\\n}"