@@ -122,7 +122,6 @@ func TestApplyTextChange(t *testing.T) {
122122 {
123123 "foo\n bar\n baz\n !" ,
124124 lsp.Range {
125- // out of range start offset
126125 Start : lsp.Position {Line : 0 , Character : 100 },
127126 End : lsp.Position {Line : 2 , Character : 0 },
128127 },
@@ -139,18 +138,18 @@ func TestApplyTextChange(t *testing.T) {
139138 },
140139 "i" ,
141140 "" ,
142- OutOfRangeError {13 , lsp. Position { Line : 20 , Character : 0 } },
141+ OutOfRangeError {"Line" , 3 , 20 },
143142 },
144143 {
145144 "foo\n bar\n baz\n !" ,
146145 lsp.Range {
147- // out of range start offset
146+ // out of range end offset
148147 Start : lsp.Position {Line : 0 , Character : 0 },
149148 End : lsp.Position {Line : 20 , Character : 0 },
150149 },
151150 "i" ,
152151 "" ,
153- OutOfRangeError {13 , lsp. Position { Line : 20 , Character : 0 } },
152+ OutOfRangeError {"Line" , 3 , 20 },
154153 },
155154 }
156155
@@ -183,8 +182,10 @@ func TestGetOffset(t *testing.T) {
183182 {"foo\n foobar\n baz" , 1 , 3 , 7 , nil },
184183 {"foo\n ba\n r\n baz\n !" , 3 , 0 , 9 , nil },
185184 {"foo\n ba\n r\n baz\n !" , 1 , 10 , 6 , nil },
186- {"foo\n ba\n r\n baz\n !" , - 1 , 0 , - 1 , OutOfRangeError {14 , lsp.Position {Line : - 1 , Character : 0 }}},
187- {"foo\n ba\n r\n baz\n !" , 4 , 20 , - 1 , OutOfRangeError {14 , lsp.Position {Line : 4 , Character : 20 }}},
185+ {"foo\n ba\n r\n baz\n !" , - 1 , 0 , - 1 , OutOfRangeError {"Line" , 4 , - 1 }},
186+ {"foo\n ba\n r\n baz\n !" , 1 , - 1 , - 1 , OutOfRangeError {"Character" , 2 , - 1 }},
187+ {"foo\n ba\n r\n baz\n !" , 4 , 20 , 14 , nil },
188+ {"foo\n ba\n r\n baz!\n " , 4 , 0 , 14 , nil },
188189 }
189190
190191 for _ , test := range tests {
@@ -203,26 +204,30 @@ func TestGetOffset(t *testing.T) {
203204
204205func TestGetLineOffset (t * testing.T ) {
205206 tests := []struct {
206- Text string
207- Line int
208- Offset int
207+ Text string
208+ Line int
209+ Exp int
210+ Err error
209211 }{
210- {"foo\n foobar\n baz" , 0 , 0 },
211- {"foo\n foobar\n baz" , 1 , 4 },
212- {"foo\n foobar\n baz" , 2 , 11 },
213- {"foo\n foobar\n baz" , 3 , - 1 },
214- {"foo\n ba\n r\n baz\n !" , 3 , 9 },
215- {"foo\n ba\n r\n baz\n !" , - 1 , - 1 },
216- {"foo\n ba\n r\n baz\n !" , 20 , - 1 },
212+ {"foo\n foobar\n baz" , 0 , 0 , nil },
213+ {"foo\n foobar\n baz" , 1 , 4 , nil },
214+ {"foo\n foobar\n baz" , 2 , 11 , nil },
215+ {"foo\n foobar\n baz" , 3 , - 1 , OutOfRangeError { "Line" , 2 , 3 } },
216+ {"foo\n ba\n r\n baz\n !" , 3 , 9 , nil },
217+ {"foo\n ba\n r\n baz\n !" , - 1 , - 1 , OutOfRangeError { "Line" , 4 , - 1 } },
218+ {"foo\n ba\n r\n baz\n !" , 20 , - 1 , OutOfRangeError { "Line" , 4 , 20 } },
217219 }
218220
219221 for _ , test := range tests {
220222 st := strings .Replace (test .Text , "\n " , "\\ n" , - 1 )
221223
222- t .Logf ("getLineOffset(\" %s\" , %d) == %d" , st , test .Line , test .Offset )
223- act := getLineOffset (test .Text , test .Line )
224- if act != test .Offset {
225- t .Errorf ("getLineOffset(\" %s\" , %d) != %d, got %d instead" , st , test .Line , test .Offset , act )
224+ t .Logf ("getLineOffset(\" %s\" , %d) == %d" , st , test .Line , test .Exp )
225+ act , err := getLineOffset (test .Text , test .Line )
226+ if act != test .Exp {
227+ t .Errorf ("getLineOffset(\" %s\" , %d) != %d, got %d instead" , st , test .Line , test .Exp , act )
228+ }
229+ if err != test .Err {
230+ t .Errorf ("getLineOffset(\" %s\" , %d) error != %v, got %v instead" , st , test .Line , test .Err , err )
226231 }
227232 }
228233}
0 commit comments