2012-03-12 2 views
7

Существует несколько команд doxygen, целью которых является создание ссылок в документации (@link, @ref).
В настоящее время я использую команду @ref, чтобы создать ссылку на пользовательский файл, написанный на языке, не поддерживаемом doxygen (xml).
Я хотел бы изменить эту ссылку так, чтобы она указывала на точную строку в файле.
Есть ли команда doxygen, которая позволяет это сделать?В документации doxygen, как создать ссылку на определенную строку файла

ответ

6

Я не уверен, что \ref или \link может это сделать. Однако, если бы они могли, одна из проблем принятия этого подхода состояла в том, что ссылки станут недействительными, если вы измените содержимое файла, на который вы ссылаетесь, без изменения ссылки. Это одна из проблем разделения исходного кода и документации.

Вместо того, чтобы ссылаться на определенную строку в другом файле, почему бы вам не включить определенную часть файла, который вас интересует в документации? Вы можете либо:

  • включает весь файл с \include (есть также \includelineno) и просто ссылаться на соответствующие части этого в тексте (например, «функция хая в коде ниже»), или
  • включают фрагменты файла, в котором вам необходимо обратиться к ним в документации, используя \snippet.

Edit: В качестве альтернативы, вы можете использовать \dontinclude команду, которая, вместе с командами \line, \skip, \skipline и \until позволяет включать конкретные строки/блоки конкретного файла. См. Пример в документации \dontinclude.

+0

Спасибо за ваши предложения. Команда '\ snippet' казалась многообещающей, однако она работает только для фрагментов кода из _source files_, в то время как я хочу показать данные из моего файла ресурсов _xml. Я не могу добавить теги, идентифицирующие местоположение фрагмента, в мой XML-файл, потому что комментарии в кислородном стиле «сломают» его. Использование \ include также очень умное, но это огромный файл, и я не хочу включать его каждый раз (документация будет блокирована нерелевантными данными). Однако, когда я использую \ ref для своего файла, я уже ссылаюсь на соответствующие части, как вы предлагаете. Я просто ищу еще лучший способ. – wil

+1

@wil Нет проблем. Я также добавил примечание к команде '\ dontinclude', которая была бы лучше для вас, чем команда' \ snippet', так как она не требует добавления тегов в ваш файл ресурсов. Однако, согласно документации, кажется, что эта команда работает только с исходными файлами (я ее не тестировал, поэтому не уверен, действительно ли это так). Вы также можете включить XML непосредственно в свою документацию. В противном случае я боюсь, вам просто придется жить с использованием вашего метода '\ ref'. – Chris

+0

Я пробовал команды '\ dontinclude', и он также работает для файлов xml! Я решил использовать это решение и задал ваш ответ как «принятый» :-) – wil

Смежные вопросы