Отслеживать элементы «TODO» при написании кода

18

Есть ли простой способ создать список «дел» на лету при написании кода? Например, предположим, что я пишу функцию, write-this-nowкогда я понимаю, что мне также нужно написать функцию поддержки write-this-later.

(defun write-this-now ()
  (unless (write-this-later) ...

Вместо того, чтобы делать паузу write-this-later, я беру вперед, как будто он уже существует. Тем не менее, я также хочу отметить для себя, что мне все еще нужно вернуться позже и создать его.

Одним из решений, которое я использовал в прошлом, является добавление комментария со словом TODO

(defun write-this-now ()
  (unless (write-this-later) nil))  ; TODO create function `write-this-later`

Теперь я могу вернуться позже и найти в файле слова TODO, и я найду эту небольшую записку, которую оставил для себя.

Существуют ли какие-либо пакеты или расширения, облегчающие создание и отслеживание элементов TODO в файле или проекте?

Могу ли я объединить все свои элементы TODO из текущего проекта в один список дел? Могу ли я добавить закладки в свой список дел, которые ссылаются на места, где я написал элементы TODO?

nispio
источник
2
Простой, но эффективный способ сделать это - использовать проект grep / awk / ack для TODO. Это то, что я обычно делаю
Джей Дэвид Смит

Ответы:

18

Вы можете попробовать использовать захват орг . Когда вы инициируете org-captureиз вашего исходного файла, он вставит элемент TODO в файл режима org со ссылкой на соответствующую область в исходном коде. org-captureдостаточно умен, чтобы захватывать контекстно-зависимые ссылки - например, если вы вызываете его в сообщении в GNUS, он захватывает ссылку непосредственно на это сообщение.

shosti
источник
1
Это выглядит удивительно похоже на то, что я описал. Возможно я использовал орг захват в другой жизни.
Nispio
16

fixmee-mode предлагает подсветку таких заметок и навигацию.

Он легко устанавливается из MELPA и поддерживает различные приоритеты элементов todo.

wasamasa
источник
1
Это интересный подход. На самом деле нет привязок клавиш, чтобы запомнить, если вы не хотите. Основное преимущество, которое я вижу по сравнению с простой обработкой элементов TODO, заключается в том, что вы можете назначать им приоритет, добавляя символы.
Nispio
2

Хотя это и не совсем тема для emacs, я использую простой прием создания заглушки метода / свойства / чего угодно, когда я нажимаю момент «сделать», не содержащий ничего, кроме утверждения «Напиши мне!» или похожие.

Затем код корректно компилируется и сообщает мне во время выполнения, где находятся мои элементы TODO.

Восьмибитный гуру
источник