Вот несколько советов и соглашений по написанию строк документации. Вы можете проверить многие из этих соглашений, выполнив команду M-x checkdoc-minor-mode.
apropos.
Вы можете заполнять текст, если это выглядит хорошо. Режим Emacs Lisp заполняет строки документации до ширины, заданной
emacs-lisp-docstring-fill-column. Однако иногда можно сделать строку документации гораздо более читаемой, тщательно расставляя разрывы строк. Используйте пустые строки между разделами, если строка документации длинная.
Для функции первая строка должна кратко отвечать на вопрос: «Что делает эта функция?» Для переменной первая строка должна кратко отвечать на вопрос: «Что означает это значение?» Старайтесь отвечать на эти вопросы так, чтобы ответ был понятен пользователям и вызывающим функцию или переменную. В частности, не описывайте, что делает функция, перечисляя действия её кода; вместо этого описывайте роль этих действий и контракт функции.
Не ограничивайте строку документации одной строкой; используйте столько строк, сколько нужно для объяснения деталей использования функции или переменной. Пожалуйста, используйте полные предложения и для остального текста.
eval ссылается на свой первый аргумент как «FORM», потому что фактическое имя аргумента — form:
Вычислить FORM и вернуть его значение.
Также пишите метасинтаксические переменные заглавными буквами, например, когда вы показываете разложение списка или вектора на части, некоторые из которых могут меняться. «KEY» и «VALUE» в следующем примере иллюстрируют это правило:
Аргумент TABLE должен быть ассоциативным списком, элементы которого имеют вид (KEY . VALUE). Здесь KEY — ...
foo, пишите «foo», а не «Foo» (это другой символ).
Это может показаться противоречащим правилу написания значений аргументов функции, но реального противоречия нет; значение аргумента — это не то же самое, что символ, который функция использует для хранения значения.
Если это ставит строчную букву в начало предложения и вас это раздражает, перепишите предложение так, чтобы символ не стоял в его начале.
t и nil без окружающих знаков препинания. Например:
CODE может быть `lambda', nil или t.
Обратите внимание, что когда Emacs отображает эти строки документации, он обычно отображает «`» (обратный апостроф) как «‘» (левая одиночная кавычка) и «'» (апостроф) как «’» (правая одиночная кавычка), если дисплей поддерживает отображение этих символов. См. Подстановка привязок клавиш в документации. (В некоторых предыдущих версиях этого раздела рекомендовалось использовать не-ASCII одиночные кавычки непосредственно в строках документации, но теперь это не рекомендуется, поскольку это приводит к некорректному отображению строк помощи на терминалах, не поддерживающих эти символы.)
Режим помощи автоматически создаёт гиперссылку, когда строка документации использует имя символа в одиночных кавычках, если этот символ имеет определение функции или переменной. Вам не нужно делать ничего особенного для использования этой возможности. Однако, когда символ имеет и определение функции, и определение переменной, и вы хотите сослаться только на одно из них, вы можете указать, на что именно, написав одно из слов «variable», «option», «function» или «command» непосредственно перед именем символа. (Регистр не имеет значения при распознавании этих слов-индикаторов.) Например, если вы напишете
Эта функция устанавливает переменную `buffer-file-name'.
то гиперссылка будет вести только на документацию переменной buffer-file-name, а не на документацию функции.
Если символ имеет определение функции и/или переменной, но они не относятся к использованию символа, которое вы документируете, вы можете написать слова «symbol» или «program» перед именем символа, чтобы предотвратить создание гиперссылки. Например,
Если аргумент KIND-OF-RESULT является символом `list', эта функция возвращает список всех объектов, удовлетворяющих критерию.
не создаёт гиперссылку на документацию (здесь не относящуюся к делу) функции list.
Обычно гиперссылка не создаётся для переменной без документации переменной. Вы можете принудительно создать гиперссылку для таких переменных, предваряя их одним из слов «variable» или «option».
Гиперссылки для лиц (faces) создаются только в том случае, если имени лица предшествует или за ним следует слово «face». В этом случае будет показана только документация лица, даже если символ также определён как переменная или функция.
Чтобы создать гиперссылку на документацию Info, напишите имя узла Info (или якоря) в одиночных кавычках, предварив его словами «info node», «Info node», «info anchor» или «Info anchor». Имя файла Info по умолчанию — «emacs». Например,
См. узел Info `Font Lock' и узел Info `(elisp)Font Lock Basics'.
Чтобы создать гиперссылку на man-страницу, напишите имя man-страницы в одиночных кавычках, предварив его словами «Man page», «man page» или «man page for». Например,
Подробности см. на man-странице `chmod(1)'.
Документация Info всегда предпочтительнее man-страниц, поэтому обязательно ссылайтесь на руководство Info, если оно доступно. Например, chmod документирован в руководстве GNU Coreutils, поэтому лучше ссылаться на него, а не на man-страницу.
Чтобы создать ссылку на группу настройки, напишите имя группы в одиночных кавычках, предварив его словами «customization group» (регистр первой буквы в каждом слове не имеет значения). Например,
Подробности см. в группе настройки `whitespace'.
Наконец, чтобы создать гиперссылку на URL, напишите URL в одиночных кавычках, предварив его словом «URL». Например,
На веб-сайте проекта GNU есть дополнительная информация (см. URL `https://www.gnu.org/').
forward-char. (Обычно это «C-f», но это может быть другой символ, если пользователь изменил привязки клавиш.) См. Подстановка привязок клавиш в документации.
Каждое использование «\\[…]» немного замедляет отображение строки документации. Если вы используете их много, эти небольшие замедления суммируются и могут стать ощутимыми, особенно на медленных системах. Поэтому наша рекомендация — не злоупотреблять ими; например, старайтесь избегать более одной ссылки на одну и ту же команду в одной строке документации.
dired-find-file:
В Dired перейти к файлу или каталогу, указанному в этой строке.
defcustom. См. Определение глобальных переменных.
nil значения эквивалентны, и явно указывать, что означают nil и не-nil.
Аргумент FOO может быть числом \(позицией в буфере) или строкой (именем файла).
Это позволяет избежать ошибки в версиях Emacs старше 27.1, где «(» воспринималась как начало определения функции (см. Defuns в Руководстве GNU Emacs). Если вы не ожидаете, что кто-то будет редактировать ваш код в старых версиях Emacs, этот обходной приём не нужен.