Любой хороший инструмент для быстрого перехода к программной документации

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

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

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

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

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

3 ответа

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

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

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

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 для поиска) и переход к первому результату.

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

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

Я набираю Shift+K для просмотра C справочная страница.

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