Next: , Previous: , Up: カスタマイゼーション設定   [Contents][Index]


15.2 カスタマイゼーショングループの定義

Emacs Lispパッケージはそれぞれ、1つのメインのカスタマイゼーショングループ(main customization group)をもち、それにはすべてのオプションとフェイス、そのパッケージ内の他のグループが含まれるべきです。そのパッケージに少数のオプションとフェイスしかなければ、1つのグループだけを使用してその中にすべてを配置します。20以上のオプションやフェイスがあるなら、それらをサブグループ内に構造化して、そのサブグループをメインのカスタマイゼーショングループの下に配置します。そのパッケージ内の任意のオプションやフェイスを、サブグループと並行してメイングループに配置しても問題はありません。

そのパッケージのメイングループ(または唯一のグループ)は、1つ以上の標準カスタマイゼーショングループ(standard customization group)のメンバーであるべきです(これらの完全なリストを表示するにはM-x customizeを使用する)。それらの内から1つ以上(多すぎないこと)を選択して、:groupを使用してあなたのグループをそれらに追加します。

新しいカスタマイゼーショングループはdefgroupで宣言します。

Macro: defgroup group members doc [keyword value]…

membersを含むカスタマイゼーショングループとしてgroupを宣言する。シンボルgroupはクォートしない。引数docはそのグループにたいするドキュメント文字列を指定する。

引数membersはそのグループのメンバーとなるカスタマイゼーションアイテムの初期セットを指定するリストである。しかしほとんどの場合はmembersnilにして、メンバーを定義するときに:groupキーワードを使用することによってそのグループのメンバーを指定する。

membersを通じてグループのメンバーを指定したければ、要素はそれぞれ(name widget)という形式で指定すること。ここでnameはシンボル、widgetはそのシンボルを編集するウィジェット型(widget type)である。変数にはcustom-variable、フェイスにはるcustom-face、グループにはcustom-groupが有用なウィジェットである。

Emacsに新しいグループを導入するときはdefgroup内で:versionキーワードを使用する。そうすればグループの個別のメンバーにたいしてそれを使用する必要がなくなる。

一般的なキーワード(一般的なキーワードアイテムを参照)に加えて、defgroup内では以下のキーワードも使用できる:

:prefix prefix

グループ内のアイテムの名前がprefixで始まり、カスタマイズ変数custom-unlispify-remove-prefixesが非nilなら、そのアイテムのタグからprefixが省略される。グループは任意の数のプレフィクスをもつことができる。

変数およびグループのサブグループはグループのシンボルのcustom-groupプロパティに格納される。シンボルのプロパティへのアクセスを参照のこと。このプロパティの値はcarが変数、フェイスまたはサブグループのシンボル、cdrはそれぞれcustom-variablecustom-face、またはcustom-groupのうちいずれかに対応するシンボルであるようなリスト。

User Option: custom-unlispify-remove-prefixes

この変数が非nilならグループの:prefixキーワードで指定されたプレフィクスは、ユーザーがグループをカスタマイズするときは常にタグ名から省略される。

デフォルト値はnil、つまりプレフィクス省略(prefix-discarding)の機能は無効となる。これはオプションやフェイスの名前にたいするプレフィクスの省略が混乱を招くことがあるからである。