1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

VimAdvent Calendar 2022

Day 5

簡単なtelescope.nvim拡張を作った

Last updated at Posted at 2022-12-04
  1. はじめに
    telescope.nvimはそれ自体に既に多くのものをFuzzyFindする機能が備わっています。拡張も作られており私が愛用しているCLIツールにも既に拡張が作られています。
    どうにかして、オリジナルの拡張を作れないか...。fuzzy finderは一覧表示してそれを絞り込む機能です。一覧表示するもの...。

    AWS

    という動機で作りました。(一個人でやるにはあまりにも巨大な壁なので、自分に必要なEC2へのAWS Session Managerによる接続だけとなっています。)

  2. 拡張の作り方
    公式に拡張の作り方が記載されています。
    また、helpにはtelescope.nvimの構成図記載されています。簡単な拡張を作るだけなら全て理解する必要はないため、比較的簡単に動作するところまで作れると思います。
    最低でも以下のことを実現したい、という大まかな流れの理解が必要です。

    1. Pickerを作成する(FuzzyFindのUIを作ります)
      1. FinderでFuzzyFind対象を抽出
      2. EntryMakerでUIに表示するデータを整形する
      3. Attach Mappingで選択した行に対するアクションを決める

    PreviewerやSorterはtelescope.nvim全体の設定を流用することも出来ます。なので肝になるのはFinder、特にEntryMakerとEntryManagerです。(builtin.commandsが結構凝った表示をしているので興味があれば参考までに。)

    ┌───────────────────────────────────────────────────────────┐
    │      ┌────────┐                                           │
    │      │ Multi  │                                ┌───────+  │
    │      │ Select │    ┌───────┐                   │ Entry │  │
    │      └─────┬──*    │ Entry │    ┌────────+     │ Maker │  │
    │            │   ┌───│Manager│────│ Sorter │┐    └───┬───*  │
    │            ▼   ▼   └───────*    └────────┘│        │      │
    │            1────────┐                 2───┴──┐     │      │
    │      ┌─────│ Picker │                 │Finder│◄────┘      │
    │      ▼     └───┬────┘                 └──────*            │
    │ ┌────────┐     │       3────────+         ▲               │
    │ │Selected│     └───────│ Prompt │─────────┘               │
    │ │ Entry  │             └───┬────┘                         │
    │ └────────*             ┌───┴────┐  ┌────────┐  ┌────────┐ │
    │     │  ▲    4─────────┐│ Prompt │  │(Attach)│  │Actions │ │
    │     ▼  └──► │ Results ││ Buffer │◄─┤Mappings│◄─┤User Fn │ │
    │5─────────┐  └─────────┘└────────┘  └────────┘  └────────┘ │
    ││Previewer│                                                │
    │└─────────┘                   telescope.nvim architecture  │
    └───────────────────────────────────────────────────────────┘
    

    出典: GitHub: nvim-telescope/telescope.nvim/docs/telescope.txt

  3. telescope.nvimからEC2へAWS Session Managerで接続するプラグインを作りました。
    GitHub lunarxlark/telescope-aws.nvim
    正直、他の方が使うことを想定して作っていません。こういうことも出来るんだよってことをお伝えしたかったです。 仰々しい名前の割に掲題のことしか出来ませんし、aws credentialsもnvim起動時のdefaultのみです。ECSへの接続をやりたいのですが、一覧表示 -> 選択を何度か繰り返さないといけないことに躓いて頓挫しています。

  4. Funmnv
    ubagbhun RagelZnxrejb ubevfntrgnxnggnaqrfhxrqb znavnvznfraaqrfuvgn.
    fbabhgv PbqrCvcryvarab wvxxbhgbxnjb lnevgnvgbbzbggrznfhabqr, fbabgbxvav nengnzrgr oybtavqrzb
    xnvgrvxhlbgrvqrfh.gnoha.xvggb.

zbgbargn : uggcf://tvguho.pbz/aivz-gryrfpbcr/gryrfpbcr.aivz/oybo/znfgre/qbp/frperg.gkg

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?