@@ -243,14 +243,25 @@ function M.inline_var(_, config)
243243 local reference_range = range (r .lnum - 1 , r .col - 1 , r .end_lnum - 1 , r .end_col - 1 , { buf = reference_buf })
244244
245245 local references_info = match_info_by_buf [reference_buf ].references
246- local reference_info = iter (references_info ):find (
247- --- @param ri refactor.ReferenceInfo
248- function (ri )
249- local srow , scol , erow , ecol = ri .identifier :range ()
250- local identifier_range = range (srow , scol , erow , ecol , { buf = reference_buf })
251- return identifier_range :has (reference_range )
252- end
253- )
246+ local reference_info = iter (references_info )
247+ :filter (
248+ --- @param ri refactor.ReferenceInfo
249+ function (ri )
250+ local srow , scol , erow , ecol = ri .identifier :range ()
251+ local identifier_range = range (srow , scol , erow , ecol , { buf = reference_buf })
252+ return identifier_range :has (reference_range )
253+ end
254+ )
255+ :fold (
256+ nil ,
257+ --- @param acc nil | refactor.ReferenceInfo
258+ --- @param ri refactor.ReferenceInfo
259+ function (acc , ri )
260+ if not acc then return ri end
261+ if ri .identifier :byte_length () < acc .identifier :byte_length () then return ri end
262+ return acc
263+ end
264+ )
254265
255266 return { reference = r , info = reference_info }
256267 end
0 commit comments