🎨

GitHubに上げたgitconfigに色がついてなかった

2023/04/14に公開

TL;DR

.gitattributes に下記を追記

.gitattributes
gitconfig linguist-language=Git-Config

はじめに

先日、自分のdotfilesレポジトリにgitconfigを追加したところ、GitHubのWeb UI上でシンタックスハイライトがされませんでした。

この記事ではデフォルトで検出されないファイルタイプを設定する方法について記載します。

ファイルタイプの設定について

GitHubでのファイルタイプ検出にはLinguistライブラリが使用されており、GitHub上で公開されています。
https://github.com/github/linguist

このリポジトリ内でLinguistの動作を変更する方法が記載されています。
このページによると、動作を変更するには以下の2つの方法があります。

  • .gitattributesに設定を追記する
  • VimまたはEmacsのモードライン[1]を設定する

.gitattributes に追記

gitconfigにlinguist-language=Git-Configを指定します。(gitconfigでも可)

.gitattributes
gitconfig linguist-language=Git-Config

モードラインを設定

Vim

Vimではモードラインを使用してファイルタイプを設定します。

gitconfig
# vi: ft=gitconfig:

Emacs

Emacsではファイルローカル変数を使用してファイルタイプ (=メジャーモード) を設定します。
ファイル先頭に追加する記法のみLinguistに認識されます。

gitconfig
# -*- mode: gitconfig -*-

Linguistで認識されるためにはモードにgitconfigを指定する必要がありますが、Emacsにはgitconfig-modeはないのでエラーになります。 (設定されるのはconf-mode)

おわりに

上記の通りに変更を行ってプッシュすることでgitconfigにシンタックスハイライトさせることができました。
モードラインで指定するのはVim/Emacsで対応していないファイルタイプがあるかもしれないので.gitattributesでの設定をおすすめします。

脚注
  1. Emacsのモードラインは別のもの (Vimでいうステータスライン)を指しますが、原文のニュアンスのままにしています。 ↩︎

Discussion