状況は次のとおりです。顔のアンダーポイント境界を取得する必要がありますが、highlight-current-lineモードを使用すると、その顔が関心のある顔にオーバーレイされます。
face-at-point
または(get-char-property (point) 'face)
、リストの最初の面のみが表示され、現在の行のオーバーレイからの面になります。下にある顔を取得する方法は?
編集:
これは多かれ少なかれ私がやったことです:
(defun haxe-face-at-point ()
"This is like `face-at-point' except we will only look for faces
which are relevant to haxe-mode. This will also look under overlays
created by minor modes like ispel or highlight current line."
(interactive)
(let ((props (text-properties-at (point))))
(catch 't
(while props
(when (eql (car props) 'face)
(throw 't
(when (member (cadr props)
'(font-lock-string-face
font-lock-keyword-face
font-lock-variable-name-face
font-lock-comment-face
font-lock-preprocessor-face
font-lock-type-face
default))
(cadr props))))
(setq props (cdr props))))))
とにかくリストの1つがあるかどうかを調べる必要があるだけでした。