defgroupが役立つのはなぜですか?


9

idoソースを読んでいます:

(defgroup ido nil
 "Switch between files using substrings."
 :group 'extensions
 :group 'convenience
 :version "22.1"
 :link '(emacs-commentary-link :tag "Commentary" "ido.el")
 :link '(emacs-library-link :tag "Lisp File" "ido.el")
 :link '(custom-manual "(ido) Top")
 :link '(info-link "(ido) Customization"))

defgroup多くの大きなパッケージの上部に表示されます。私はそれがこれをするのを見ます:

SYMBOLをMEMBERSを含むカスタマイズグループとして宣言します。SYMBOLは引用する必要はありません。

また、カスタマイズグループページでは、それらをいつどのように使用するかについてはあまり答えていません。いつ、どのように使用しますか?

回答:


8

いつ、どのような理由でグループ化を使用しますか?グループ全体またはグループの個々のメンバー(グループのみ)に対して行動できるようにするため。それもここでの答えです。

  • 特定のグループまたはグループのセットに作用するコマンドやその他の機能があります。customize-group特定のグループに作用するものです。customize-apropos-groupsグループのセットに作用するものです。

  • 使用customize-groupすると、サブグループ(存在する場合)とそのグループの個々のメンバー(オプションとフェイス)をカスタマイズできるリンクが表示されます。

さらに、グループには通常プレフィックスがあり、Emacsとやり取りするときに、関数や顔などの名前に対するパターンマッチングに使用できます。これは、アクションを特定のセット(カスタマイズグループ)に制限するもう1つの方法です。

グループは、パッケージのオンラインドキュメント、ソースコード、バグレポートなどにすばやくアクセスすることもできます。たとえば、ここではグループの定義ですIcicles-Key-Completion(一部のコードは省略されています)。

(defgroup Icicles-Key-Completion nil
  "Icicles preferences related to key completion (`icicle-complete-keys')."
  :prefix "icicle-" :group 'Icicles
  :link `(url-link :tag "Send Bug Report" ...)
  :link '(url-link :tag "Other Libraries by Drew" ...)
  :link '(url-link :tag "Download" ...)
  :link '(url-link :tag "Description" ...)
  :link '(emacs-commentary-link :tag "Doc-Part2" "icicles-doc2")
  :link '(emacs-commentary-link :tag "Doc-Part1" "icicles-doc1"))

このグループは、それ自体がグループのサブグループですIcicles(を参照:group)。バグレポートの送信、ダウンロード、およびソースコードまたはWeb上のドキュメントへのアクセスのためのカスタマイズバッファー内のリンクを提供します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.