Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vim/NeovimでGitHubを使う

 Vim/NeovimでGitHubを使う

032eb5910248d5ffd0e0ac3820c45583?s=128

gorilla0513

December 28, 2020
Tweet

Transcript

  1. Vim/NeovimでGitHubを使う by ゴリラ

  2. 自己紹介 • ゴリラ • Vimが好きになる本の著者 • 趣味 ◦ OSS作る ◦

    漫画/アニメ/音楽/カラオケ • Vimで生活したい病 • 仕事ではPM、気持ちはPG
  3. 今回のテーマ Vim上でGitHubを操作するgh.vimを作った話

  4. gh.vimの機能一覧 • issueの一覧、編集、作成、Open/Close、ブラウザで開く • issueコメントの一覧、編集、作成、ブラウザで開く • PR一覧、差分表示、ブラウザで開く • プロジェクトの一覧、カード移動、ブラウザで開く •

    GitHub Actionsの結果とログ閲覧、ブラウザで開く • ファイルツリー、ファイル閲覧、ブラウザで開く • リポジトリ一覧、README閲覧、ブラウザで開く • Gist一覧、ファイル閲覧
  5. • Vim/Neovim対応 Vim: 8.2 ~ Neovim: 0.5.0 ~ • バッファのみ提供

    例)特定のリポジトリのCloseされたissue一覧をみたいとき :e gh://{owner}/{repo}/issues?state=closed • 導入が簡単 curl のみ使用している gh.vimの特徴
  6. issue list

  7. issue list(プレビューあり) プレビュー

  8. issue listの項目 issue number issue state issue author issue title

  9. issue edit :w でバッファの内 容で更新する translate.vimを 使うと翻訳しながら issueを読める

  10. issue create テンプレートがあると選択可能 Enterでテンプレートを展開 issueのタイトルを入力 :w でバッファの内容で issueを作成

  11. issue comment list :w でバッファの内容で コメント更新 コメント一覧

  12. PR list PRの差分 PR 一覧

  13. issue listの項目 PR number PR state PR author PR title

  14. Project list Project一覧 Project カード一覧 カラム間の カード移動が可能

  15. GitHub Actions GitHub Actions Jobs Job log Vimだけで GitHub Actions

    の結果を確認
  16. Repository file tree Repository file tree file contents

  17. Gist list Gist file preview Gist list

  18. Gist edit 開き方を選択 :w でバッファ内容 で更新

  19. • BufReadCmd を使って gh://* というバッファが開かれたら適宜に処理を行う 仕組み

  20. • API通信は vatal.vim と vital-Whisky の Promise を使って非同期で処理 • curlを使って、コマンドを組み立てていく

    仕組み
  21. • 一部のAPIはGraphQLを使っている 将来的にクエリー系は全般GraphQLに移行予定 仕組み

  22. • 詳細はこちらの記事をどうぞ https://qiita.com/gorilla0513/items/480d454ca74868eb07bd 仕組み

  23. • キャッシュ機構がないので、データ通信量が多い 例)issue 編集バッファでは開くたびに通信している • データ取得系はほぼRESTを使っているので、不要なデータが多い 例)PR 一覧では number/state/author/title しか使っていないが、他にもいろいろ

    なデータが返ってくる • テストがないので、諸々ツライ 例)デグレがしょっちゅう発生する • エラーが握りつぶされることがある • 開発の人手不足 例)実装したい機能が多いが、コアで実装やっているのは自分だけ 課題
  24. • 一緒に開発してくれる人募集中 ちょっと試しにやってみたい人はissueを適当にピックアップしてOK • 直近はv1.0.0リリースに向けて せっせと作っている • リリース後にテストを書く (流石にきつくなってきた) •

    認知度を上げる (宣伝方法検討中) 今後の展望 issue一覧