日々是精進。(はてな館)

日々ネットで調べたり、付箋に書き留めたものをアップしています。子育てで中断しながらも、年に数回投稿しています。皆様の恩恵に感謝しつつ。

日々の記録を残しています。皆様の恩恵に感謝しつつ。

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のCSVjsonでのコピーも、拡張機能として取り込まれているんですね...。

f:id:akiko-pusu:20180726051904p:plain

 

実際にMarkdownでCopyしてみた!

上記の通り追加してみたところ、テーブルを表示させたらMarkdownでCopyするオプションが出てくれました!

f:id:akiko-pusu:20180726052448p:plain

自分でこのあたり調整できるとは、ちょっと感動です。

しかもバイナリでなにかプラグイン作成のようなことをしなくてもできるって...。

貼り付けてみた!

Copyした行を、Markdownのファイル(*.md)に貼り付けてみました。

ちゃんとテーブルのフォーマットで貼り付けされていますし、Markdown Previewで表示すると、確かにテーブルになっています!

これは便利!

f:id:akiko-pusu:20180726052611p:plain

 

おかげさまで

思った以上に簡単に拡張できたのも驚きでした。

このおかげで、テーブル追加やテーブル拡張の仕様をGitHub Issueやesaにまとめたりする際、サンプルデータを抽出して貼り付けるといったことが、とても楽になりました。

教えてくださったいまいさんにも、嬉しくて返信。

 IntelliJ IDEAハンズオン に掲載されている機能の一割くらいしかまだ使いこなせていないような気がしますが、今後も引き続きお世話になろうと思っています!

またまた宣伝

もしこれからご購入を検討されてる方がいらしたら、サムライズム様の紹介プログラムで1000円割引でのご購入ができます。よかったらアクセスしてみてくださいね
GoLand, IntelliJ, RubyMine, PyCharmなどなど、とても効率があがりますよ!

secure.samuraism.com

 

 IntelliJ IDEAハンズオン については、以下のブログでも紹介しています。こちらもよかったら覗いてみていただけると嬉しいです。

daily-postit.blogspot.com

*1:Confluenceやesaに貼り付けが多いです