@ 261102.1

251112.3 · 91fab3b3c210cc80854fe801e86db681e1c6c3f6

Fix lint warnings (#4586)

go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...

reading declarations

src/algo/algo.go

@@ -365,7 +365,7 @@ func asciiFuzzyIndex(input *util.Chars, pattern []rune, caseSensitive bool) (int  	firstIdx, idx, lastIdx := 0, 0, 0 	var b byte-	for pidx := 0; pidx < len(pattern); pidx++ {+	for pidx := range pattern { 		b = byte(pattern[pidx]) 		idx = trySkip(input, caseSensitive, b, idx) 		if idx < 0 {@@ -726,7 +726,7 @@ func FuzzyMatchV1(caseSensitive bool, normalize bool, forward bool, text *util.C 	lenRunes := text.Length() 	lenPattern := len(pattern) -	for index := 0; index < lenRunes; index++ {+	for index := range lenRunes { 		char := text.Get(indexAt(index, lenRunes, forward)) 		// This is considerably faster than blindly applying strings.ToLower to the 		// whole string

src/ansi_test.go

@@ -41,7 +41,7 @@ func testParserReference(t testing.TB, str string) {  		equal := len(got) == len(exp) 		if equal {-			for i := 0; i < len(got); i++ {+			for i := range got { 				if got[i] != exp[i] { 					equal = false 					break@@ -167,9 +167,9 @@ func TestNextAnsiEscapeSequence_Fuzz_Random(t *testing.T) { 	randomString := func(rr *rand.Rand) string { 		numChars := rand.Intn(50) 		codePoints := make([]rune, numChars)-		for i := 0; i < len(codePoints); i++ {+		for i := range codePoints { 			var r rune-			for n := 0; n < 1000; n++ {+			for range 1000 { 				r = rune(rr.Intn(utf8.MaxRune)) 				// Allow 10% of runes to be invalid 				if utf8.ValidRune(r) || rr.Float64() < 0.10 {@@ -182,7 +182,7 @@ func TestNextAnsiEscapeSequence_Fuzz_Random(t *testing.T) { 	}  	rr := rand.New(rand.NewSource(1))-	for i := 0; i < 100_000; i++ {+	for range 100_000 { 		testParserReference(t, randomString(rr)) 	} }

src/chunklist_test.go

@@ -51,7 +51,7 @@ func TestChunkList(t *testing.T) { 	}  	// Add more data-	for i := 0; i < chunkSize*2; i++ {+	for i := range chunkSize * 2 { 		cl.Push(fmt.Appendf(nil, "item %d", i)) 	} @@ -85,7 +85,7 @@ func TestChunkListTail(t *testing.T) { 		return true 	}) 	total := chunkSize*2 + chunkSize/2-	for i := 0; i < total; i++ {+	for i := range total { 		cl.Push(fmt.Appendf(nil, "item %d", i)) 	} 

src/core.go

@@ -502,7 +502,7 @@ func Run(opts *Options) (int, error) { 											return item.acceptNth(opts.Ansi, opts.Delimiter, fn) 										} 									}-									for i := 0; i < count; i++ {+									for i := range count { 										opts.Printer(transformer(merger.Get(i).item)) 									} 									if count == 0 {

src/history_test.go

@@ -38,7 +38,7 @@ func TestHistory(t *testing.T) { 		if len(h.lines) != maxHistory+1 { 			t.Errorf("Expected: %d, actual: %d\n", maxHistory+1, len(h.lines)) 		}-		for i := 0; i < maxHistory; i++ {+		for i := range maxHistory { 			if h.lines[i] != "foobar" { 				t.Error("Expected: foobar, actual: " + h.lines[i]) 			}

src/merger_test.go

@@ -34,11 +34,11 @@ func buildLists(partiallySorted bool) ([][]Result, []Result) { 	numLists := 4 	lists := make([][]Result, numLists) 	cnt := 0-	for i := 0; i < numLists; i++ {+	for i := range numLists { 		numResults := rand.Int() % 20 		cnt += numResults 		lists[i] = make([]Result, numResults)-		for j := 0; j < numResults; j++ {+		for j := range numResults { 			item := randResult() 			lists[i][j] = item 		}@@ -60,7 +60,7 @@ func TestMergerUnsorted(t *testing.T) { 	// Not sorted: same order 	mg := NewMerger(nil, lists, false, false, revision{}, 0, 0) 	assert(t, cnt == mg.Length(), "Invalid Length")-	for i := 0; i < cnt; i++ {+	for i := range cnt { 		assert(t, items[i] == mg.Get(i), "Invalid Get") 	} }@@ -73,7 +73,7 @@ func TestMergerSorted(t *testing.T) { 	mg := NewMerger(nil, lists, true, false, revision{}, 0, 0) 	assert(t, cnt == mg.Length(), "Invalid Length") 	sort.Sort(ByRelevance(items))-	for i := 0; i < cnt; i++ {+	for i := range cnt { 		if items[i] != mg.Get(i) { 			t.Error("Not sorted", items[i], mg.Get(i)) 		}

src/reader.go

@@ -7,6 +7,7 @@ import ( 	"io/fs" 	"os" 	"path/filepath"+	"slices" 	"strings" 	"sync" 	"sync/atomic"@@ -178,7 +179,7 @@ func (r *Reader) feed(src io.Reader) { 	for { 		n := 0 		scope := slab[:util.Min(len(slab), readerBufferSize)]-		for i := 0; i < 100; i++ {+		for range 100 { 			n, err = src.Read(scope) 			if n > 0 || err != nil { 				break@@ -308,15 +309,11 @@ func (r *Reader) readFiles(roots []string, opts walkerOpts, ignores []string) bo 				if !opts.hidden && base[0] == '.' && base != ".." { 					return filepath.SkipDir 				}-				for _, ignore := range ignoresBase {-					if ignore == base {-						return filepath.SkipDir-					}+				if slices.Contains(ignoresBase, base) {+					return filepath.SkipDir 				}-				for _, ignore := range ignoresFull {-					if ignore == path {-						return filepath.SkipDir-					}+				if slices.Contains(ignoresFull, path) {+					return filepath.SkipDir 				} 				for _, ignore := range ignoresSuffix { 					if strings.HasSuffix(path, ignore) {

src/result.go

@@ -91,7 +91,7 @@ func buildResult(item *Item, offsets []Offset, score int) Result { 		case byBegin, byEnd: 			if validOffsetFound { 				whitePrefixLen := 0-				for idx := 0; idx < numChars; idx++ {+				for idx := range numChars { 					r := item.text.Get(idx) 					whitePrefixLen = idx 					if idx == minBegin || !unicode.IsSpace(r) {

src/terminal.go

@@ -3526,11 +3526,12 @@ func (t *Terminal) printHighlighted(result Result, colBase tui.ColorPair, colMat 			} else { 				tokens = Transform(Tokenize(item.text.ToString(), t.delimiter), t.nthCurrent) 			}-			for _, token := range tokens {+			nthOffsets = make([]Offset, len(tokens))+			for i, token := range tokens { 				start := token.prefixLength 				length := token.text.Length() - token.text.TrailingWhitespaces() 				end := start + int32(length)-				nthOffsets = append(nthOffsets, Offset{int32(start), int32(end)})+				nthOffsets[i] = Offset{int32(start), int32(end)} 			} 			sort.Sort(ByOrder(nthOffsets)) 		}@@ -4902,7 +4903,7 @@ func (t *Terminal) buildPlusList(template string, forcePlus bool) (bool, [3][]*I 	if asterisk { 		cnt := t.merger.Length() 		all = make([]*Item, cnt)-		for i := 0; i < cnt; i++ {+		for i := range cnt { 			all[i] = t.merger.Get(i).item 		} 	}@@ -7154,7 +7155,7 @@ func (t *Terminal) constrain() {  	// May need to try again after adjusting the offset 	t.offset = util.Constrain(t.offset, 0, count)-	for tries := 0; tries < maxLines; tries++ {+	for range maxLines { 		numItems := maxLines 		// How many items can be fit on screen including the current item? 		if t.canSpanMultiLines() && t.merger.Length() > 0 {@@ -7208,7 +7209,7 @@ func (t *Terminal) constrain() { 			scrollOff := util.Min(maxLines/2, t.scrollOff) 			newOffset := t.offset 			// 2-phase adjustment to avoid infinite loop of alternating between moving up and down-			for phase := 0; phase < 2; phase++ {+			for phase := range 2 { 				for { 					prevOffset := newOffset 					numItems := t.merger.Length()

src/tokenizer.go

@@ -206,8 +206,9 @@ func Tokenize(text string, delimiter Delimiter) []Token { 	if delimiter.regex != nil { 		locs := delimiter.regex.FindAllStringIndex(text, -1) 		begin := 0-		for _, loc := range locs {-			tokens = append(tokens, text[begin:loc[1]])+		tokens = make([]string, len(locs))+		for i, loc := range locs {+			tokens[i] = text[begin:loc[1]] 			begin = loc[1] 		} 		if begin < len(text) {

src/tui/light_unix.go

@@ -98,7 +98,7 @@ func (r *LightRenderer) findOffset() (row int, col int) { 	r.flush() 	var err error 	bytes := []byte{}-	for tries := 0; tries < offsetPollTries; tries++ {+	for tries := range offsetPollTries { 		bytes, err = r.getBytesInternal(bytes, tries > 0) 		if err != nil { 			return -1, -1

src/util/atexit_test.go

@@ -8,7 +8,7 @@ import ( func TestAtExit(t *testing.T) { 	want := []int{3, 2, 1, 0} 	var called []int-	for i := 0; i < 4; i++ {+	for i := range 4 { 		n := i 		AtExit(func() { called = append(called, n) }) 	}

src/util/chars.go

@@ -52,7 +52,7 @@ func ToChars(bytes []byte) Chars { 	}  	runes := make([]rune, bytesUntil, len(bytes))-	for i := 0; i < bytesUntil; i++ {+	for i := range bytesUntil { 		runes[i] = rune(bytes[i]) 	} 	for i := bytesUntil; i < len(bytes); {@@ -259,7 +259,7 @@ func (chars *Chars) Lines(multiLine bool, maxLines int, wrapCols int, wrapSignWi 		lines = append(lines, text) 	} else { 		from := 0-		for off := 0; off < len(text); off++ {+		for off := range text { 			if text[off] == '\n' { 				lines = append(lines, text[from:off+1]) // Include '\n' 				from = off + 1