Предоставляет ли Geany или Gedit протокол браузера так же, как Textmate делает с txmt: //?

Textmate на Mac может быть привязан к протоколу txmt, что означает, что платформы разработки (такие как Play Framework) могут быть настроены для использования этого для отображения сообщений об ошибках. Если появляется трассировка стека, каждая строка трассировки стека является URL-адресом формата (я предполагаю):

txmt:///home/myuser/projects/myproject/ProblemFile.java:123

(где 123 - номер строки).

При нажатии на этот файл открывается файл в Textmate.

Возможно ли это с помощью Gedit, Geany или другого текстового редактора программиста?

5
задан 6 January 2011 в 21:01

3 ответа

Мой лучший выстрел с помощью Python (вероятно, пропускает некоторые пограничные случаи):

gconftool-2 -s /desktop/gnome/url-handlers/geany/command ' python -c "import urlparse;import sys;import pipes;url=\"http\"+sys.argv[1][5:];import os; up=urlparse.urlparse(url);os.system(\"geany \"+(pipes.quote(\"/\"+up.netloc+up.path)+\" --socket-file /tmp/geany --line \" + pipes.quote(up.query)))" %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/geany/enabled --type Boolean true

Начнет открываться geany://home/www/index.php?239 как /home/www/index.php в строке 239 использование /tmp/geany как сокет (чтобы не открывать много экземпляров geany)

0
ответ дан 6 January 2011 в 21:01

Принятый ответ не работает над 11,04.

Вот мое решение для gedit на 11,04: http://rystraum.com/blog/2012/05/rails-footnotes-with-gedit/

TLDR; версия:

  1. Создать /usr/share/applications/foo-uri.desktop:

    [Desktop Entry]
    Name=Foo
    GenericName=Foo
    Comment=Open foo links in Gedit
    TryExec=open_gedit
    Exec=open_gedit %u
    Terminal=false
    Type=Application
    MimeType=x-scheme-handler/foo
    NoDisplay=true
    
  2. Выполненный sudo update-desktop-database

  3. open_gedit сценарий в местоположении, которое находится в $PATH

    #!/bin/bash
    FILE=$1
    FILE=${FILE/foo\:\/\//}
    LINE=$(echo $FILE | grep -o "\&line=[0-9]\+")
    LINE=$(echo $LINE | grep -o "[0-9]\+")
    FILE=$(echo $FILE | grep -o "\(.\+\)\&")
    FILE=$(echo $FILE | cut -d'&' -f1)
    gedit +$LINE $FILE
    
  4. Звоните как foo:///path/to/file&line=299

3
ответ дан 6 January 2011 в 21:01

Можно легко создавать новые обработчики протоколов в Gnome, все, что вам нужно сделать, это добавить некоторые ключи в gconf.

В терминале введите:

gconftool-2 -s /desktop/gnome/url-handlers/foo/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled --type Boolean true

Замените foo в обеих строках протоколом, который вы хотите зарегистрировать, и / path / to / app на путь к приложению, которое вы хотите запустить , (из: http://kb.mozillazine.org/Register_protocol#All_Firefox_versions )

0
ответ дан 6 January 2011 в 21:01

Другие вопросы по тегам:

Похожие вопросы: