Cthulhu
21.02.2012 16:19 Miranda
Пстач, а что сейчас модно использовать для документирования кода на C++?
Требования таковы:
1) Софтина на входе получает плюсопроект;
2) Находит в нем все функции/методы/поля/whatever, задает мне вопросы о них;
3) Вставляет перед ними в коде аннотации (типа функция X, принимает такие параметры, возвращает такое значение, делает вот такую хуйню, особенности использования etc);
4) Не захлебывается даже от хардкорного плюсокодца (в разумных пределах, буст или личкрафт ей никто скармливать не будет :3 );
5 (bonus): Генерация на основе всего этого структурированной документации (например в html).
Чо где как?
Recommended by:
@0xd34df00d
doxygen
пункты 1-4 делают IDE, пункт 5 делает doxygen
LOL WHUT?
Сабж уже может в п. 2?
находит, но вопросы не задаёт
Всегда умел.
Прям вопросы задает? Как запустить для этого?
"задаёт вопросы" — указывает тип, видимость и аттачит к ним комментарий в специальном формате
А, да, забыл уточнить. В идеале — автономная софтина, без иде. Цель — быстро документировать совсем неоткомментированный код. Про доксиген знаю, но он же вроде как не умеет пункты 1-4?
попробуй.
> указывает
Што. Это уже называется задавать вопросы? Ты там совсем ебанулся?
Я хуево сформулировал, да. Задает вопросы это значит примерно следующее:
"Чувак, у тебя в файле xxx.cpp в классе dictionary есть вот такой метод:
int add_word(const string&);
Что это вообще такое?
Какова его цель?
Что передается в первом параметре?
Что он возвращает?
Есть ли какие-то дополнительные примечания?"
И потом добавляет перед методом что-то типа
/***
*int add_word(const string&) — что я там ему ответил на первый вопрос
*
*Purpose:
* длинное описание, которое я дал
*
*Entry:
* тут про предназначение параметров
*
*Exit:
* про результат
*
*Notes:
* если есть
*******************************************************************************/
а чем literate programming не угодил?
Тем что есть вот кусок кода практически совсем без комментариев, и нужно быстро его привести в тырпрайзный вид. Можно это сделать вручную, конечно, но хотелось бы автоматизации — сидеть, попивая пуэр, и лениво отвечать на вопросы, как в /12 .
да ты охуел © четыре-года-без-комментариев-в-тырпрайз-коде-кун
Шесть-лет-без-комментариев-в-личкрафте-кун, УМВР.
Вот из-за таких как вы плюсы и считают нечитабельным говном! /thread
А они разве не нечитабельное говно? Люди от этого почему-то блюют → QList<IAccount*> GetAccounts (std::function<bool (IProtocol*)> = [] (IProtocol*) { return true; }) const;
А от чего блевать конкретно здесь? Просто еще одно полезное применение для лямбд. Может им незнаком сам паттерн применения таких фильтрующих параметров?
Хотя, конечно, на вид слегка попахивает оверинжинирингом. Тебе реально приходилось вызывать ее с условием сложнее "вернуть все аккаунты одного конкретного протокола"? )
Да. Например, «вернуть все аккаунты протоколов, поддерживающих такую-то фичу».
Хм, логично, да.
доксиген
Он умеет пункт 2? (так, как описано в /12 )
а я ебу. Сказал второе, что пришло в голову. Первое было...нутыпонел
а у вас можно писать плагины на LCLISP?
хм. Лисп кажется не поддерживается. Точно можно на питоне. И еще на чем-то. Руби, что ли. Но не уверен
Нет. Запили в Qrosp.