Skip to content

Commit 559c51e

Browse files
fix(language-server): find closest dependency handler as effect
Co-authored-by: Johnson Chu <[email protected]>
1 parent 0e917c6 commit 559c51e

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

packages/language-server/lib/reactivityAnalyze.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -230,17 +230,19 @@ export function analyze(
230230
}
231231

232232
function findEffectByEffectHandlerPosition(position: number) {
233-
return signals.find(ref =>
233+
return signals.filter(ref =>
234234
ref.sideEffectInfo && ref.sideEffectInfo.handler.getStart(sourceFile) <= position
235235
&& ref.sideEffectInfo.handler.getEnd() >= position
236-
);
236+
).sort((a, b) =>
237+
a.sideEffectInfo!.handler.getWidth(sourceFile) - b.sideEffectInfo!.handler.getWidth(sourceFile)
238+
)[0];
237239
}
238240

239241
function findEffectByDepsHandlerPosition(position: number) {
240-
return signals.find(ref =>
242+
return signals.filter(ref =>
241243
ref.trackInfo && ref.trackInfo.depsHandler.getStart(sourceFile) <= position
242244
&& ref.trackInfo.depsHandler.getEnd() >= position
243-
);
245+
).sort((a, b) => a.trackInfo!.depsHandler.getWidth(sourceFile) - b.trackInfo!.depsHandler.getWidth(sourceFile))[0];
244246
}
245247
}
246248

0 commit comments

Comments
 (0)