やりたい
(destructuring-bind (start end) (bounds-of-thing-at-point 'symbol))
ただしbounds-of-thing-at-point
、リストではなくコンスセルを返すため、
destructuring-bind
機能しません。この場合、何がうまくいくでしょうか?
destructuring-bind
はパッケージのマクロであるためcl
、Common Lisp のドキュメントでさらに例を調べる価値があるかもしれません。
このページには、マクロの構文が表示されます。に注意してください(wholevar reqvars optvars . var)
。cl
のバージョンがあまり一般的ではないすべてのケースを実際にサポートしているかどうかはわかりませんがdestructuring-bind
(多くのキーワードは、Common Lisp マクロ/関数で使用する場合にのみ意味がありますが、Emacs Lisp ではその意味を持ちません)。
したがって:
(destructuring-bind (start . end) (bounds-of-thing-at-point 'symbol) ;...)
動作するはずです。
私は使うだろう
(pcase-let ((`(,start . ,end) (bounds-of-thing-at-point 'symbol)))
...)
destructuring-bind ほどエレガントなものは考えられませんが、これは機能します。
(let* ((b (bounds-of-thing-at-point 'symbol))
(start (car b))
(end (cdr b)))
...)