GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/elisp/Splicing-into-Lists.html ・ emacs-doc.conao3.com

15.4.3 リストへのスプライシング

:inline 機能を使用すると、list または vector のカスタマイズタイプの途中に、可変個の要素を挿入できます。list または vector の指定に含まれるタイプ指定に :inline t を追加することで利用します。

通常、list または vector 型指定の各エントリは、単一の要素型を記述します。しかし、エントリに :inline t が含まれている場合、それに一致する値は包含するシーケンスに直接マージされます。例えば、そのエントリが3つの要素を持つリストに一致する場合、それらは全体のシーケンスの3つの要素となります。これは、バッククォート構文における ‘,@’ と同様です(バッククォート を参照)。

例えば、最初の要素が baz でなければならず、残りの引数が foo と bar を 0 個以上とするリストを指定するには、次のカスタマイズタイプを使用します。

(list (const baz) (set :inline t (const foo) (const bar)))

これは (baz)、(baz foo)、(baz bar)、(baz foo bar) といった値に一致します。

要素タイプが choice の場合、:inline を choice 自体ではなく、choice の代替パターン(の一部)で使用します。例えば、ファイル名で始まり、その後に記号 t または2つの文字列が続くリストにマッチさせるには、次のカスタマイズタイプを使用します:

(list file
      (choice (const t)
              (list :inline t string string)))

ユーザーが選択肢の1番目を選んだ場合、全体のリストは2つの要素を持ち、2番目の要素はtとなります。ユーザーが2番目の選択肢を選んだ場合、全体のリストは3つの要素を持ち、2番目と3番目は文字列である必要があります。

ウィジェットでは、インライン値が:match-inline要素を持つウィジェットに一致するかどうかを判定する述語を指定できます。