Next: , Previous: Font Lock Basics, Up: Font Lock Mode   [Contents][Index]


22.5.2 õº÷¤Ë´ð¤Å¤¯¥Õ¥©¥ó¥ÈÁªÂò

¥Õ¥©¥ó¥È¥í¥Ã¥¯¡Êfont-lock¡Ë¥â¡¼¥É¤Î¥«¥¹¥¿¥Þ¥¤¥º¤Ë¤ª¤¤¤Æ ¤â¤Ã¤È¤â½ÅÍפÊÊÑ¿ô¤Ïfont-lock-keywords¤Ç¤¹¡£ õº÷¤Ë´ð¤Å¤¯É½¼¨ÊýË¡¤ÎÁªÂò¤Ë¤ª¤±¤ëõº÷¾ò·ï¤ò»ØÄꤷ¤Þ¤¹¡£

Variable: font-lock-keywords

¤³¤ÎÊÑ¿ô¤ÎÃͤϡ¢¶¯Ä´É½¼¨¤¹¤ë¤Ù¤­¥­¡¼¥ï¡¼¥É¤Î¥ê¥¹¥È¤Ç¤¢¤ë¡£ ¤³¤Î¥ê¥¹¥È¤ËÀµµ¬É½¸½¤ò½ñ¤¯¾ì¹ç¤Ë¤ÏÃí°Õ¤¹¤ë¤³¤È¡£ Éϼå¤Ê½ñ¤­Êý¤ò¤·¤¿¥Ñ¥¿¡¼¥ó¤Ç¤¢¤ë¤È¡¢Æ°ºî¤ò·àŪ¤ËÃÙ¤¯¤¹¤ë¡ª

font-lock-keywords¤Î³ÆÍ×ÁǤϡ¢ ÆÃÄê¤Î¥Æ¥­¥¹¥È¤Îõ¤·Êý¤È Åö³º¥Æ¥­¥¹¥È¤ò¤É¤Î¤è¤¦¤Ë¶¯Ä´É½¼¨¤¹¤ë¤«»ØÄꤷ¤Þ¤¹¡£ ¥Õ¥©¥ó¥È¥í¥Ã¥¯¡Êfont-lock¡Ë¥â¡¼¥É¤Ï¡¢ font-lock-keywords¤ÎÍ×ÁǤò1¤Ä1¤Ä½èÍý¤·¡¢ ³ÆÍ×ÁǤˤª¤¤¤Æ¡¢¤½¤ì¤Ë°ìÃפ¹¤ë¤â¤Î¤¹¤Ù¤Æ¤òõ¤·¤Æ½èÍý¤·¤Þ¤¹¡£ Ä̾¤¹¤Ç¤Ëɽ¼¨ÊýË¡¤òÁªÂòºÑ¤ß¤Î¥Æ¥­¥¹¥ÈÉôʬ¤Ë¤Ä¤¤¤Æ¤Ï¡¢ ¤½¤ì°Ê¹ß¤ÎÍ×ÁǤ˰ìÃפ·¤Æ¤âɽ¼¨ÊýË¡¤òÊѤ¨¤Þ¤»¤ó¡£ ¤·¤«¤·¡¢highlighter¤ÎÍ×ÁÇoverride¤ò»È¤Ã¤Æ¡¢ °Û¤Ê¤ë¤Õ¤ë¤Þ¤¤¤ò»ØÄê¤Ç¤­¤Þ¤¹¡£

font-lock-keywords¤Î³ÆÍ×ÁǤϤĤ®¤Î¤¤¤º¤ì¤«¤Î·Á¤Ç¤¹¡£

regexp

Àµµ¬É½¸½regexp¤Ë°ìÃפ·¤¿¤â¤Î¤Ï¤¹¤Ù¤Æ font-lock-keyword-face¤ò»È¤Ã¤Æ¶¯Ä´É½¼¨¤¹¤ë¡£

;; ¸ÉΩ¤·¤¿‘foo’¤Î½Ð¸½¤Ï
;; font-lock-keyword-face¤Ç¶¯Ä´É½¼¨¤¹¤ë¡£
"\\<foo\\>"

´Ø¿ôregexp-opt¡Êsee Syntax of Regexps¡Ë¤Ï¡¢ °Û¤Ê¤ëÊ£¿ô¸Ä¤Î¥­¡¼¥ï¡¼¥É¤Ë°ìÃפ¹¤ëºÇŬ¤ÊÀµµ¬É½¸½¤ò ·×»»¤¹¤ë¤Î¤ËÍ­ÍѤǤ¢¤ë¡£

function

´Ø¿ôfunction¤ò¸Æ¤Ó½Ð¤·¤Æ¥Æ¥­¥¹¥È¤òõ¤·¡¢ ¤½¤ì¤¬Ãµ¤·½Ð¤·¤¿¤â¤Î¤òfont-lock-keyword-face¤ò»È¤Ã¤Æ¶¯Ä´É½¼¨¤¹¤ë¡£

function¤Ï¡¢Ãµº÷¸Â³¦¤ò°ú¿ô¤È¤·¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ë¡£ ¤ß¤Ä¤«¤ì¤Ðnil°Ê³°¤òÊÖ¤¹¤È¤È¤â¤Ë ¤ß¤Ä¤±¤¿Éôʬ¤òɽ¤¹¥Þ¥Ã¥Á¥Ç¡¼¥¿¤òÀßÄꤹ¤ë¡£

(matcher . match)

¤³¤Î¼ï¤ÎÍ×ÁǤǤϡ¢matcher¤Ï¡¢¾å¤Ë½Ò¤Ù¤¿Àµµ¬É½¸½¤«´Ø¿ô¤òɽ¤¹¡£ CDR¤Îmatch¤Ï¡¢¡Êmatcher¤Ë°ìÃפ·¤¿ÉôʬÁ´ÂΤΤ«¤ï¤ê¤Ë¡Ë ¶¯Ä´É½¼¨¤¹¤Ù¤­matcher¤ÎÉôʬ¼°¤ò»ØÄꤹ¤ë¡£

;; fubar’¤Î³Æ½Ð¸½¤Î‘bar’¤ò
;; font-lock-keyword-face¤Ç¶¯Ä´É½¼¨
("fu\\(bar\\)" . 1)

Àµµ¬É½¸½matcher¤òºî¤ë¤¿¤á¤Ëregexp-opt¤ò»È¤Ã¤¿¾ì¹ç¡¢ match¤ÎÃͤò·×»»¤¹¤ë¤Ë¤Ï regexp-opt-depth¡Êsee Syntax of Regexps¡Ë¤ò»È¤¨¤ë¡£

(matcher . facename)

¤³¤Î¼ï¤ÎÍ×ÁǤǤϡ¢facename¤Ï¡¢ ¶¯Ä´É½¼¨¤Ë»È¤¦¥Õ¥§¥¤¥¹Ì¾¤ò»ØÄꤹ¤ëÃͤòɽ¤¹¼°¤Ç¤¢¤ë¡£

;; fubar’¤Î½Ð¸½¤Ï¡¢fubar-face¤ÎÃͤÇ
;; ɽ¤µ¤ì¤¿¥Õ¥§¥¤¥¹¤ò»È¤Ã¤Æ¶¯Ä´É½¼¨
("fubar" . fubar-face)
(matcher . highlighter)

¤³¤Î¼ï¤ÎÍ×ÁǤǤϡ¢highlighter¤Ï¡¢ matcher¤Ë°ìÃפ·¤¿Éôʬ¤Î¶¯Ä´É½¼¨ÊýË¡¤ò»ØÄꤹ¤ë¥ê¥¹¥È¤Ç¤¢¤ë¡£ ¤Ä¤®¤Î·Á¤Ç¤¢¤ë¤³¤È¡£

(subexp facename override laxmatch)

CAR¤Îsubexp¤Ï¡¢ ¶¯Ä´É½¼¨¤¹¤Ù¤­°ìÃ×Éôʬ¤ÎÉôʬ¼°¤ò»ØÄꤹ¤ëÀ°¿ô ¡Ê0¤Ï°ìÃ×ÉôʬÁ´ÂΤò°ÕÌ£¤¹¤ë¡Ë¤Ç¤¢¤ë¡£ 2ÈÖÌܤÎÍ×ÁÇfacename¤Ï¡¢¾å¤Ë½Ò¤Ù¤¿¤è¤¦¤Ë¥Õ¥§¥¤¥¹¤ò»ØÄꤹ¤ë¡£

highlighter¤ÎºÇ¸å¤Î2¤Ä¤ÎÍ×ÁÇ¡¢ override¤Èlaxmatch¤Ï¥Õ¥é¥°¤Ç¤¢¤ë¡£ override¤¬t¤Ç¤¢¤ë¤È¡¢Åö³ºÍ×ÁǤϡ¢ font-lock-keywords¤Î¤Þ¤¨¤ÎÍ×ÁǤǷèÄêºÑ¤ß¤Î ɽ¼¨ÊýË¡¤ËÍ¥À褹¤ë¤³¤È¤òɽ¤¹¡£ keep¤Ç¤¢¤ë¤È¡¢Â¾¤ÎÍ×ÁǤǤÏɽ¼¨ÊýË¡¤¬·èÄꤷ¤Æ¤¤¤Ê¤¤ ³ÆÊ¸»ú¤Îɽ¼¨ÊýË¡¤òɽ¤¹¡£ prepend¤Ç¤¢¤ë¤È¡¢ °À­face¤ÎÀèÆ¬¤Ë¥Õ¥§¥¤¥¹facename¤òÄɲ乤롣 append¤Ç¤¢¤ë¤È¡¢ °À­face¤ÎËöÈø¤Ë¥Õ¥§¥¤¥¹facename¤òÄɲ乤롣

laxmatch¤¬nil°Ê³°¤Ç¤¢¤ë¤È¡¢ matcher¤Ç°ìÃפ·¤¿¤â¤Î¤ÎÃæ¤ËsubexpÈÖÌܤÎÉôʬ¼°¤¬ ¤Ê¤¯¤Æ¤â¥¨¥é¡¼¤È¤·¤Ê¤¤¤³¤È¤ò°ÕÌ£¤¹¤ë¡£

¤³¤Î¼ï¤ÎÍ×ÁǤȤ½¤Îưºî¤ÎÎã¤ò¼¨¤¹¡£

;; foo’¤ä‘bar’¤Î½Ð¸½¤Îɽ¼¨ÊýË¡¤¬¤¹¤Ç¤Ë·è¤Þ¤Ã¤Æ¤¤¤Æ¤â
;; foo-bar-face¤Ç¶¯Ä´É½¼¨¤¹¤ë
;; foo-bar-face¤ÎÃͤϥե§¥¤¥¹¤Ç¤¢¤ë¤³¤È
("foo\\|bar" 0 foo-bar-face t)

;; ´Ø¿ôfubar-match¤¬¤ß¤Ä¤±¤¿³Æ½Ð¸½Æâ¤ÎºÇ½é¤ÎÉôʬ¼°¤ò
;; fubar-face¤ÎÃͤ¬É½¤¹¥Õ¥§¥¤¥¹¤Ç¶¯Ä´É½¼¨¤¹¤ë
(fubar-match 1 fubar-face)
(matcher highlighters…)

¤³¤Î¼ï¤ÎÍ×ÁǤϡ¢1¤Ä¤Îmatcher¤ËÂФ·¤Æ Ê£¿ô¤Î¥ê¥¹¥Èhighlighter¤ò»ØÄꤹ¤ë¡£ ¤³¤ì¤¬Í­ÍѤǤ¢¤ë¤¿¤á¤Ë¤Ï¡¢ ³Æhighlighter¤Çsubexp¤ÎÃͤ¬°Û¤Ê¤ë¤³¤È¡£ ¤Ä¤Þ¤ê¡¢¤½¤ì¤¾¤ì¤òmatcher¤Î°Û¤Ê¤ëÉôʬ¼°¤ËŬÍѤǤ­¤ë¤³¤È¡£

(eval . form)

form¤Ï¡¢¥Ð¥Ã¥Õ¥¡¤Ë¤ª¤¤¤Æfont-lock-keywords¤Î¤³¤ÎÃͤ¬ »Ï¤á¤Æ»È¤ï¤ì¤¿¤È¤­¤Ëɾ²Á¤¹¤Ù¤­¼°¤Ç¤¢¤ë¡£ ¤½¤ÎÃͤϡ¢¤³¤Îɽ¤Ë¤¢¤²¤¿·Á¤Î1¤Ä¤Ç¤¢¤ë¤³¤È¡£

·Ù¹ð¡§ font-lock-keywords¤ÎÍ×ÁǤϡ¢ ¹Ô¤ò¤Þ¤¿¤¬¤Ã¤Æ°ìÃפ¹¤ë¤è¤¦¤ËÀ߷פ·¤Ê¤¤¤³¤È¡£ ¤½¤Î¤è¤¦¤Ê½èÍý¤Ï¿®ÍêÀ­¤¬¤Ê¤¤¡£ font-lock-fontify-buffer¤Ï¡¢¹Ô¤Ë¤Þ¤¿¤¬¤ë¥Ñ¥¿¡¼¥ó¤òÀµ¤·¤¯°·¤¨¤ë¤¬¡¢ ÆÉ¼Ô¤¬¥Ð¥Ã¥Õ¥¡¤òÊÔ½¸¤·¤¿¤È¤­¤Î¹¹¿·½èÍý¤Ç¤Ï¡¢ °ìÅÙ¤Ë1¹Ô¤º¤Ä½èÍý¤¹¤ë¤¿¤á¤ËÀµ¤·¤¯°·¤¨¤Ê¤¤¡£