@@ -251,20 +251,23 @@ export class TextSearchMatch implements ITextSearchMatch {
251251 constructor ( text : string , range : ISearchRange | ISearchRange [ ] , previewOptions ?: ITextSearchPreviewOptions ) {
252252 this . ranges = range ;
253253
254- if ( previewOptions && previewOptions . matchLines === 1 && ! Array . isArray ( range ) ) {
254+ if ( previewOptions && previewOptions . matchLines === 1 && ( ! Array . isArray ( range ) || range . length === 1 ) ) {
255+ const oneRange = Array . isArray ( range ) ? range [ 0 ] : range ;
256+
255257 // 1 line preview requested
256258 text = getNLines ( text , previewOptions . matchLines ) ;
257259 const leadingChars = Math . floor ( previewOptions . charsPerLine / 5 ) ;
258- const previewStart = Math . max ( range . startColumn - leadingChars , 0 ) ;
260+ const previewStart = Math . max ( oneRange . startColumn - leadingChars , 0 ) ;
259261 const previewText = text . substring ( previewStart , previewOptions . charsPerLine + previewStart ) ;
260262
261- const endColInPreview = ( range . endLineNumber - range . startLineNumber + 1 ) <= previewOptions . matchLines ?
262- Math . min ( previewText . length , range . endColumn - previewStart ) : // if number of match lines will not be trimmed by previewOptions
263+ const endColInPreview = ( oneRange . endLineNumber - oneRange . startLineNumber + 1 ) <= previewOptions . matchLines ?
264+ Math . min ( previewText . length , oneRange . endColumn - previewStart ) : // if number of match lines will not be trimmed by previewOptions
263265 previewText . length ; // if number of lines is trimmed
264266
267+ const oneLineRange = new OneLineRange ( 0 , oneRange . startColumn - previewStart , endColInPreview ) ;
265268 this . preview = {
266269 text : previewText ,
267- matches : new OneLineRange ( 0 , range . startColumn - previewStart , endColInPreview )
270+ matches : Array . isArray ( range ) ? [ oneLineRange ] : oneLineRange
268271 } ;
269272 } else {
270273 const firstMatchLine = Array . isArray ( range ) ? range [ 0 ] . startLineNumber : range . startLineNumber ;
0 commit comments