git cloneしているソースコードからGitHubやGH:EのWebページを開く
前にも書いたとおり、マネージドクラウドチームで開発に関わっているのですが、今までと違って
- まだ全てを追いきれていない
- ある程度の規模のアーキテクチャなので複数のリポジトリに分かれている
- 多くのOSSを活用している(もしくはOSSを自分たちで作って活用している)
- GitHubだけでなくGH:Eも使っている
- 何から何までGH:Eの上に書く文化
- Slack活用がすごい
という状況です。
そうすると
- 実装について具体的なコードを指して質問したい
- リポジトリをまたいだ実装の議論がある
- 日々の検討内容や進行ログをコードを指して記録したい
ということが多くあります。
そのたびに、手元のEmacsではそのソースコードを開いているのに、GH:EやSlackで質問や会話をするためにGitHubやGH:Eのページを開くのがかなり面倒でした。
やりたいことはEmacs上のカーソルの位置から該当ソースコードのページを開くことです(行のハッシュ付きで)。
「確かそんな.elがあったような気がする」と思ったのですが、せっかくなので自分で久しぶりにEmacs Lispを書いていました。
昨日作った.elが最高に便利だ
— k1LoW (@k1LoW) 2018年3月15日
が、だいたいできたあとで調べたら、やはりもっと良さそうなのがあったのでそっちを使うことになりました。
他の.elが良さそうだったので早くも自分が作った.elが開発終了となった
— k1LoW (@k1LoW) 2018年3月18日
自分は以下のような設定をしています。
(require 'git-link) (defun git-link-gocode (hostname dirname filename branch commit start end) (format "https://%s/%s/+/%s/%s" hostname dirname (or branch commit) (concat filename (when start (format "#%s" start))))) (with-eval-after-load 'git-link (custom-set-variables '(git-link-open-in-browser t)) (add-to-list 'git-link-remote-alist '("ghe\\.example\\.com" git-link-github)) ;; GH:Eのホストも対象に (add-to-list 'git-link-remote-alist '("go\\.googlesource\\.com" git-link-gocode))) ;; go get で取得したgoのコードも表示できるように
これでカーソルやリージョンを見てブラウザでソースコードのURLを開いてくれます。
便利。