IntelliJのDatabase PluginでテーブルのデータをMarkdownで貼り付ける。
はてなの記事、3つ目になります。
今回はIntelliJのDatabase plugin (もしくはDataGrip) についてのお話になります。
(初めて記事をご覧になった方へ:こちらは IntelliJが好きなアカウント です)
はじめに
Database pluginの機能
日々調査目的、検証目的でIntelliJからDBに接続し、データを記録用のドキュメント共有ツールに貼り付けることがあります。*1
IntelliJのDataase pluginには、選択したテーブルのデータをCopy & Pasteする機能が備わっています。
これは地味ですが、とても良い機能で、ほぼ毎週お世話になっています。
たとえば、調査用にテーブルからデータをSELECTしてチケットに貼り付けて共有したりしています。
また、データも単純にCSVとしてCopy & Pasteできるだけでなく、CSVやTSV、SQL Insert文、Update文、HTMLといろいろフォーマットが選べます。
MarkdowでもCopyしたい!
コミュニティに上がっていました
さて、標準のCopy形式以外に、チケット(GitHub Issue) に貼るのであれば Markdown形式のテーブルでCopyしたい....。
IntelliJやDataGripへの要望として、JetBrainsのコミュニティにこの件の投稿が上がっていました。
内容としては、この機能をJetBrains側で実装するのではなくて、各自で拡張機能として、Copy形式を登録できるとので、やってみてねとのこと。
また、投稿者さんが拡張用のソース(js)をGistに貼り付けていてくださっていました。
機能を追加してみるよ!
この件、「機能として実装されないかなあ」ことを呟いたところ、日頃お世話になっている『IntelliJ IDEAハンズオン』(書籍)の著者のいまいさんにも「自分で登録できるよー」とのコメントをいただきました。
ということで、さっそく挑戦。
ソースはGistのものをそのままありがたく使わせていただきました...。
ソースの配置場所
ダウンロードしたソースは、 各自のホームディレクトリのライブラリの下に配置します。
- $HOME/Library/Preferences/IntelliJIdea2018.xx/extensions/com.intellij.database/data/extractors
IntelliJやDataGripを開いていれば、プロジェクトのパネルから追加ができます。
こうして見ると、GroovyのCSVやjsonでのコピーも、拡張機能として取り込まれているんですね...。
実際にMarkdownでCopyしてみた!
上記の通り追加してみたところ、テーブルを表示させたらMarkdownでCopyするオプションが出てくれました!
自分でこのあたり調整できるとは、ちょっと感動です。
しかもバイナリでなにかプラグイン作成のようなことをしなくてもできるって...。
貼り付けてみた!
Copyした行を、Markdownのファイル(*.md)に貼り付けてみました。
ちゃんとテーブルのフォーマットで貼り付けされていますし、Markdown Previewで表示すると、確かにテーブルになっています!
これは便利!
おかげさまで
思った以上に簡単に拡張できたのも驚きでした。
このおかげで、テーブル追加やテーブル拡張の仕様をGitHub Issueやesaにまとめたりする際、サンプルデータを抽出して貼り付けるといったことが、とても楽になりました。
教えてくださったいまいさんにも、嬉しくて返信。
こっちも簡単にできてびっくりでしたー!
— たかのあきこ (@akiko_pusu) April 13, 2018
ありがとうございます!!
Confluenceに貼るときはHTMLが便利なんですが、esaとかhttps://t.co/8C2WBDH7Odとかは、どうしても多めのデータをMarkdownで貼らないと行けない時困ってたので、助かりました。
これでガンガンドキュメント書けます! pic.twitter.com/Os9t3Ftv5G
IntelliJ IDEAハンズオン に掲載されている機能の一割くらいしかまだ使いこなせていないような気がしますが、今後も引き続きお世話になろうと思っています!
またまた宣伝
もしこれからご購入を検討されてる方がいらしたら、サムライズム様の紹介プログラムで1000円割引でのご購入ができます。よかったらアクセスしてみてくださいね!
GoLand, IntelliJ, RubyMine, PyCharmなどなど、とても効率があがりますよ!
IntelliJ IDEAハンズオン については、以下のブログでも紹介しています。こちらもよかったら覗いてみていただけると嬉しいです。