## 背景
[[Header search in file]]や[[In file search]]では候補にカーソルをあわせると背面にカーソル位置がプレビュー表示されるが、その後に起動前のカーソル位置へ戻ることができない。ファイルの中身を確認したいだけで移動したくないときは不便。
## 調査
`AnotherQuickSwitcherModal.ts` を参考にrestoreできるような実装をしていった。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
feat(in file): Even if the cursor moves in the preview, restore the o… · tadashi-aikawa/obsidian-another-quick-switcher@d49fe82
</div>
<div class="link-card-v2-content">
…riginal position when dismissed & register the moved position in the Vim mode jumplist
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/ba7c9b81945ff33e9ff9e5b38f24c325318e9b2750e7b8e588d6d8d3acb81e83/tadashi-aikawa/obsidian-another-quick-switcher/commit/d49fe8287826b06fe54fb9d04408f616f95d859c" />
<a href="https://github.com/tadashi-aikawa/obsidian-another-quick-switcher/commit/d49fe8287826b06fe54fb9d04408f616f95d859c"></a>
</div>
jumplistへの登録は、[[DeepWiki]]に聞いてなんとか着地。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://deepwiki.com/favicon.ico" />
<span class="link-card-v2-site-name">DeepWiki</span>
</div>
<div class="link-card-v2-title">
Search | DeepWiki
</div>
<div class="link-card-v2-content">
DeepWiki provides up-to-date documentation you can talk to, for every repo in the world. Think Deep Research for ...
</div>
<a href="https://deepwiki.com/search/jumplistn_de71d39c-8aa8-44be-899c-aeaf5f60a797"></a>
</div>
[[CodeMirror]]の非公開APIを駆使する。
```ts
private addToJumpList(
editor: Editor,
editorPosition: EditorPosition,
to: EditorPosition,
) {
const cm = (editor as any).cm?.cm;
const jumpList = cm.constructor?.Vim?.getVimGlobalState_?.()?.jumpList;
if (!jumpList) {
return;
}
jumpList.add(cm, editorPosition, to);
}
```