2012-04-02 4 views
9

Вопрос, выделенный жирным шрифтом. Это вопрос программирования, поэтому не подходите к выводам и голосуйте за закрытием.Любой хороший инструмент для быстрого перехода к программной документации

Я программист на С ++. Я использую OS X/quicksilver или ubuntu/compiz/gnome do как мой рабочий стол. Я стараюсь не прикасаться к мыши, и я использую несколько рабочих столов, и я использую разбиение обоих этих дисков с клавиатуры. Для программирования я использую bash и vim.

Как я программист на C++ Мне нужно ссылаться на документацию, разбросанную повсеместно, например, буферы STL/Boost/CMAKE/zeromq/protocol/Mongodb/rapidJson/luajit, и этот список можно продолжить.

Прыжки к различным справочным руководствам - это разрушитель рабочего процесса в режиме реального времени. Возможно, вы не уверены, что это действительно проблема, но если вы используете несколько библиотек из boost, без завершения кода, вы поймете, что это действительно проблема. Как люди справляются со своими справочными ссылками, и что является самым быстрым способом перейти к справочным руководствам? Стандартные закладки браузера не являются ответом, и все, что вы предлагаете, должно выполняться в минимальном количестве нажатий клавиш, или минимальная латентность от информации нуждается в синтезе, чтобы информация была удовлетворена.

Возможно, пользовательский браузер или мощные плагины, которые я не знаю? Для навигации по каталогу я использую vim's NERDTree, возможно, что-то вдоль этих строк? Например, я должен иметь возможность набирать boost-файловую систему и иметь возможность перейти непосредственно на страницу ссылок на код в форматированной файловой системе.

+0

Что заставляет вас думать, что использование VIM по-прежнему является лучшим выбором? Особенно после того, как вы уже сталкиваетесь с проблемой, которую исправляет для вас сегодняшняя IDE? –

ответ

1

I типа сдвиг + к для просмотра C страницы человека.

+0

Да, это хорошая отправная точка = D. Однако большинство библиотек C++ в настоящее время имеют онлайн-руководства. Кроме того, только clang может анализировать C++ для инструментов кодирования, чтобы преднамеренно извлекать идентификаторы с правильной семантикой, поэтому пока нет никаких инструментов для этого. Итак, сначала мне нужно подключить clang ++ с помощью vim, тогда мне нужно будет использовать подсистему man для батута в справочных руководствах по веб-интерфейсам: D –

+0

Мне также пришлось бы нормализовать идентификаторы в авторитарную форму (таких как boost :: filesystem :: path to boost-fileysten), чтобы инструменты направляли меня на документацию верхнего уровня. Было бы быстрее просто набрать «boost-filesystem» в каком-то инструменте, и перейти на нужную страницу. –

2

Я боюсь, что вы хотите, это IDE, которую Vim, как бы мне ни понравилось, не является.

a plugin that gives access to the standard library documentation. Тем не менее, Vim сам по себе не может понять ваш код и магически адаптироваться к любой библиотеке, которую вы включаете в свой проект. Vim Wiki также имеет twopages, что может представлять интерес.

+0

no C++ ide, кроме визуальной студии, правильно разбирает современный C++ или достаточно быстро. поэтому я избегаю C++ IDE. Именно по этой причине я ищу какую-то форму управления ссылками/worflow, которая позволит мне быстро перейти к URL-адресу. Сказав, что я не против инструмента, такого как ртуть или гнома-до, который позволит мне быстро перейти к ссылкам. –

+0

Я мало знаю о Gnome Do, но легко добавить пользовательские веб-поиски в Quicksilver в настройках> Каталог> Пользовательский. Если ваши библиотеки имеют документацию, доступную для поиска, она может, по крайней мере частично, решить вашу проблему, я думаю. – romainl

+0

+1 для этого. На данный момент я не развиваюсь на карте. Но я полагаю, что gnome-do будет иметь аналогичную функциональность. Я буду смотреть в него. –

4

Если ваши ссылки на документацию имеют четко определенный URI, вы можете создать небольшую программу, которая автоматически построит правильный URI с идентификатором документации и некоторым идентификатором объекта.

Например, я написал небольшую Ubiquity команды, которая позволяет мне быстро открыть последнюю документацию любого объекта Qt, просто путем замены в Firefox, набрав Ctrl + пространства для вызова консоли Ubiquity, а затем ввести qt QSomeClass ,

Вот полный код команды Ubiquity (если вы уже установили Ubiquity, вы можете подписаться на канал команды на this blank page):

CmdUtils.makeSearchCommand({ 
    names: ["qt"], 
    author: {name: "Luc Touraille"}, 
    url: "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html", 
    icon: "http://qt.nokia.com/favicon.ico", 
    description: "Searches the Qt Documentation for your word." 
}); 

Как вы можете видеть, это очень просто и может легко адаптируются для другой онлайн-документации, , если URL-адрес хорошо сконструирован.

Редактировать

Вот более общий вариант, который вы можете адаптировать к вашим потребностям (вам просто нужно заполнить карту шаблоны):

var urlTemplates = { 
    "QT": "http://doc.qt.nokia.com/main-snapshot/{QUERY}.html", 
    "MPL": "www.boost.org/doc/libs/release/libs/mpl/doc/refmanual/{QUERY}.html", 
    ".NET": "http://msdn.microsoft.com/en-us/library/{QUERY}.aspx" 
}; 

CmdUtils.CreateCommand({ 
    names: ["doc"], 
    author: {name: "Luc Touraille"}, 

    arguments: [ {role: "object", 
        nountype: /^[0-9a-zA-Z_.-]*$/, 
        label: "entity" 
       }, 
       {role: "source", 
        nountype: [source for (source in urlTemplates)], 
        label: "documentation" 
       } ], 

    description: "Searches the documentation for some entity on a given documentation reference.", 

    _getSearchResultUrl: function(arguments) { 
     var documentationSource = arguments.source.text; 

     var urlTemplate = urlTemplates[documentationSource.toUpperCase()]; 

     return urlTemplate.replace("{QUERY}", arguments.object.text); 
    }, 

    execute: function(arguments) { 
     Utils.openUrlInBrowser(this._getSearchResultUrl(arguments)); 
    } 
}); 

Пример использования:

doc QMainWindow from qt 
doc from mpl vector 
doc system.idisposable from .net 
doc this from .net // with some text selected 

Конечно, это очень наивная реализация, которая потерпит неудачу на большинстве сайтов. Более развитый подход может заменить шаблоны URL-адресов на карте по функциям, тем самым обеспечивая больший контроль над построением целевого URL-адреса. Я оставлю это как упражнение для читателя :). Другим решением может быть поиск на веб-сайте (при условии, что он обеспечивает правильный REST API для поиска) и перейти к первому результату.