Как мне добавить Go в список доступных для просмотра источников? - PullRequest
1 голос
/ 30 апреля 2010

Я только начинаю "git" в первый раз и установил git и gitg из дистрибутива Ubuntu 10.4 / AMD64 (то есть, возможно, не 'последняя' версия, но не старая)

Я пытаюсь посмотреть код go, который я зафиксировал через gitg, и на «вкладке дерева» написано:

Cannot display file content as text.

Тем не менее, «вкладка сведений» показывает отличия одного и того же файла.
Я знаю, что «вкладка дерева» Гитга работает, потому что я могу использовать представление дерева на *.c / *.html / *.txt и т. Д. Просто отлично.

<question> Можно ли как-то настроить понимание того, что "* .go" - это просто текст? </question>

Немного больше контекста:

  • Установленная версия gitg - 0.0.5, т. Е. Версия за последней - 0.0.6 - источник, который я сейчас ищу.

у меня есть рабочий /usr/share/gtksourceview-2.0/language-specs/go.lang.
Работает просто как хайлайтер в gedit.
Похоже, что gitg может потребоваться, чтобы отображаемые файлы имели тип mime "text/plain", поэтому я добавил это к go.lang

Нет радости. Гитг все еще не работает на *.go.
Я относительно уверен, что исправить это просто, просто не знаю, где искать.

1 Ответ

1 голос
/ 30 апреля 2010

Когда дело доходит до gitg alt text http://trac.novowork.com/gitg/chrome/site/logo.png (просмотрщик репозитория git, нацеленный на gtk + / GNOME), может быть интересно посмотреть на его код ( также здесь ):

В частности, gitg-commit-view.c отображает это сообщение, поскольку его функция gitg_utils_can_display_content_type() возвращает неизвестный тип для отображения текста.

gboolean
gitg_utils_can_display_content_type(gchar const *content_type)
{
        return g_content_type_is_a(content_type, "text/plain") || 
                   g_content_type_equals(content_type, "application/octet-stream");
}

Так что вам нужно объявить тип файла go как text/plain (в gitg, а не "to go.lang"), и он должен работать.


На самом деле, объявление не в gitg: g_content_type_is_a является функцией glib\gio\gcontenttype.c ( project glib ) и вызывает get_registry_classes_key(), которая читает реестр (HKEY_CLASSES_ROOT для Windows, MIME-тип зарегистрирован для Unix ).

Итак, если вы регистрируете файлы go, оно должно работать:

xdg-icon-resource install --context mimetypes --size 48 go-type.png plain/text

XML-файл для регистрации (найден OP Hotei , отличная работа!)

<?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/x-extension-go">
    <sub-class-of type="text/plain"/>
    <comment>go for files</comment>
    <glob pattern="*.go"/>
  </mime-type>
</mime-info>

xdg-mime install go-mime.xml
update-desktop-database
...