いくつか方法があり、それぞれメリットデメリットがある。
## 比較
- FW: [[フローティングウィンドウ (Neovim)|フローティングウィンドウ]]
- Preview: プレビュー
- JL: [[ジャンプリスト (Vim)|ジャンプリスト]]
- TypeScript対応状況
| 手段 | FW | Preview | JL | TypeScript対応 |
| ---- | ---- | ---- | ---- | ---- |
| [[aerial.nvim]] | 〇 | △ | X | `type`と`abstract class`が表示できない |
| [[coc.nvim]] | X | 〇 | X | `variables`などノイズが多い |
## aerial.nvimを使う
[[aerial.nvim]]を使う方法。[[フローティングウィンドウ (Neovim)|フローティングウィンドウ]]でいい感じに出せるのはメリット。
![[2024-01-15-22-04-00.webp]]
一方、[[TypeScript]]では`type`や`abstract class`が候補に表示されないという問題もある。
> [[📝aerial.nvimのアウトラインではTypeScriptのtypeやabstract classが表示されない]]
以下のように[[telescope.nvim]]と連携することもできる。
```lua
{
'stevearc/aerial.nvim',
opts = {},
dependencies = {
"nvim-treesitter/nvim-treesitter",
"nvim-tree/nvim-web-devicons"
},
keys = {
-- Telescopeでアウトライン表示
{ '<C-j>o', ':Telescope aerial<cr>' },
},
}
```
## coc.nvimを使う。
[[coc.nvim]]の`CocOutline`コマンドを使う方法。[[ウィンドウ (Vim)|ウィンドウ]]表示だが、プレビュー機能はかなり秀逸。
![[2024-01-15-22-12-36.webp]]
変数なども表示されてしまいnoisyなのが欠点。