๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.editor.xemacs
Article #269

Re: [Q] c,c++ font-lock on XEmacs

#269
From: Katsumi Yamaoka
Date: Thu, 16 Aug 2001 13:12
75 lines
4387 bytes
>>>>> In <9leq0g$15s$1@news512.nifty.com>
>>>>>	Atushi Shinmura <atushi.shinmura@nifty.ne.jp> wrote:

ๆ–ฐๆ‘ใ•ใ‚“> ใ†ใƒผใƒผใ‚“ใ€‚ใ™ใใ•ใพ่ฉฆใ—ใฆใฟใŸใฎใงใ™ใŒใ€ใ‚ณใƒผใƒ‰ใ‚’่ชญใฟใ“ใฟใ€็€่‰ฒ
ๆ–ฐๆ‘ใ•ใ‚“> ใฎใƒ—ใƒญใ‚ฐใƒฌใ‚นใƒใƒผใŒ็”ป้ขไธ‹ๅดใซๅ‡บใฆใใฆใ€๏ผ™๏ผ๏ผ…ใใ‚‰ใ„ใพใง้€ฒใ‚€ใฎ
ๆ–ฐๆ‘ใ•ใ‚“> ใงใ™ใŒใ€ใใ“ใ‹ใ‚‰ๅ…ˆใซใ„ใ‹ใšใซใ€ใšใฃใจๅ‡ฆ็†ไธญใซใชใฃใฆใ—ใพใ„ใพใ—
ๆ–ฐๆ‘ใ•ใ‚“> ใŸใ€‚

ใ”ใ‚ใ‚“ใชใ•ใ„็„ก้™ใƒซใƒผใƒ—ใŒ่ตทใใฆใ„ใพใ—ใŸใ€‚ใ“ใ‚Œใชใ‚‰ๅคงไธˆๅคซใ ใจๆ€ใ†ใฎ
ใงใ™ใŒใ€ใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚

(defadvice font-lock-match-c++-style-declaration-item-and-skip-to-next
  (around work-with-the-next-line activate)
  "Advised to work with the next line."
  (if (<= (point) (ad-get-arg 0))
      (let ((opoint (if (and (= (point) (ad-get-arg 0))
			     (eolp)
			     (not (eobp)))
			(prog1
			    (point)
			  (while (and (zerop (forward-line 1))
				      (looking-at "[\t ]*$")))
			  (end-of-line)
			  (ad-set-arg 0 (point))
			  (beginning-of-line)))))
	ad-do-it
	(if (and (not ad-return-value) opoint)
	    (goto-char opoint)))
    (goto-char (ad-get-arg 0))
    (setq ad-return-value nil)))

ใŸใ ใ—ใ“ใ‚Œใฏใพใ ใ€

ๅฑฑๅฒก> find-file ใ—ใŸ็›ดๅพŒใซใฏๅŠนใใฎใงใ™ใŒใ€on the fly ใงใ‚ณใƒผใƒ‰ใ‚’ๆ›ธใ„ใฆ
ๅฑฑๅฒก> ใ„ใ‚‹ๆœ€ไธญใซใฏๅŠนๆžœใŒ็„กใ„ใ“ใจใงใ™ใ€‚

ใ“ใฎๅ•้กŒใ‚’่งฃๆฑบใ—ใฆใ„ใพใ›ใ‚“ใ€‚
font-lock ใฏ่กŒๅ˜ไฝใฎๅ‹•ไฝœใŒไธปใฎใ‚ˆใ†ใงใ€ไปฅไธ‹ใฎ 2 ่กŒ็›ฎใŒๆ”นๅค‰ใ•ใ‚ŒใŸ
ๅ ดๅˆใฏใใฎ่กŒใ‚’ fontify ใ—็›ดใ™ใ‹ใฉใ†ใ‹ใ‚’่ชฟในใ‚‹ใฎใงใ™ใŒใ€

int foo,
    bar;

font-lock-keywords ใซใฏใใฎ่กŒใ ใ‘ใซใƒžใƒƒใƒใ™ใ‚‹ใ‚ญใƒผใŒ็„กใ„ใฎใง็€่‰ฒ
ใŒ่งฃ้™คใ•ใ‚Œใฆใ—ใพใ„ใพใ™ใ€‚ใใ‚Œใฏใ€็€่‰ฒใŒ่งฃ้™คใ•ใ‚ŒใŸๅพŒใง 1 ่กŒ็›ฎใ‚’ๆ›ธ
ใๆ›ใˆใ‚‹ใจ่‰ฒใŒๅพฉๆดปใ™ใ‚‹ใ“ใจใ‹ใ‚‰ใ‚‚ใ‚ใ‹ใ‚Šใพใ™ใ€‚ใใ†ใ„ใ†ใ‚ใ‘ใงใ€

ๆ–ฐๆ‘ใ•ใ‚“> ็ขบใ‹ใ€๏ผ‘๏ผ๏ผ่กŒๅ‰ๅพŒใซใ‚‚ใชใ‚‹ๅŠ›ไฝœใ ใฃใŸใจๆ€ใ„ใพใ™ใ€‚ไฝœ่€…ๆœฌไบบใŒ็พ
ๆ–ฐๆ‘ใ•ใ‚“> ๅœจใŠใ‚Šใพใ›ใ‚“ใฎใงใ€็ขบใ‹ใ‚ใ‚‹่ก“ใ‚‚ใชใ„ใฎใงใ™ใŒใ€็ฑณๅ›ฝใฎใ‚ตใ‚คใƒˆใ‹ใ‚‰
ๆ–ฐๆ‘ใ•ใ‚“> ่ฒฐใฃใฆๆฅใŸ็‰ฉใ‚’ๆ‰‹็›ดใ—ใ—ใŸใ ใ‘ใ ใจใ„ใ†ใ“ใจใงใ™ใ€‚ 

ใใ‚Œใฏใ‹ใชใ‚Šใ™ใ”ใ„ใ‚‚ใฎใชใฎใ ใจๆ€ใˆใฆใใพใ—ใŸใ€‚ใŸใถใ‚“ใผใใฎใ‚ขใƒ—ใƒญใƒผ
ใƒใจใฏ้•ใฃใฆ keywords ใใฎใ‚‚ใฎใ‚’ๆ›ธใๆ›ใˆใฆใ—ใพใ†ใ‚ฟใ‚คใƒ—ใงใฏใชใ„ใ‹
ใจๆ€ใ†ใฎใงใ™ใŒใ€ใ‚ชใƒชใ‚ธใƒŠใƒซใฎ font-lock ใงใฏ

(match-beginning 13)

ใชใฉใจใ„ใ†ใ™ใ•ใพใ˜ใ„ๆญฃ่ฆ่กจ็พใŒไฝฟใ‚ใ‚Œใฆใ„ใ‚‹ใฎใงใ€ไธ€ๆœไธ€ๅค•ใซใงใใ‚‹
ใ‚‚ใฎใงใฏใชใ„ใงใ—ใ‚‡ใ†ใ€‚ใผใใฏใ€ใพใŸๆŠ˜ใ‚’่ฆ‹ใฆๆŒ‘ๆˆฆใ—ใ‚ˆใ†ใจๆ€ใ„ใพใ™ใŒใ€‚

ใจใ“ใ‚ใงใ€ๆ–ฐๆ‘ใ•ใ‚“ใฏ font-lock ใ‚’็ด ใฎใพใพใงไฝฟใฃใฆใ„ใ‚‰ใฃใ—ใ‚ƒใ„ใพ
ใ™ใ‚ˆใญ(?)ใ€‚ใ‚ˆใ‚ใ—ใ‘ใ‚Œใฐ XEmacs ใซไป˜ๅฑžใ—ใฆใ„ใ‚‹ lazy-shot ใ‚’ไฝต็”จใ™
ใ‚‹ใฎใฏใ„ใ‹ใŒใงใ—ใ‚‡ใ†ใ‹ใ€‚ใŸใถใ‚“

(add-hook 'font-lock-mode-hook 'turn-on-lazy-shot)

ใ“ใ‚Œใ ใ‘ใง่‰ฏใ„ใจๆ€ใ„ใพใ™ใ€‚
ใ“ใ‚Œใฏไบบใซใ‚ˆใฃใฆใฏๆฐ—ๆŒใกๆ‚ชใ„ใ‹ใ‚‚ใ—ใ‚Œใพใ›ใ‚“ใŒใ€ใจใ‚‚ใ‹ใ่ตทๅ‹•ใŒ้€Ÿใ
ใชใ‚Šใพใ™ใ€‚etc/sample.init.el ใง็ดนไป‹ใ•ใ‚Œใฆใ„ใ‚‹ lazy-lock ใฎๆ–นใŒ่ฆ‹
ใˆๆ–นใŒใšใฃใจ็ถบ้บ—ใชใฎใงใ™ใŒใ€ๆฎ‹ๅฟตใชใŒใ‚‰่‡ดๅ‘ฝ็š„ใชใƒใ‚ฐใŒใ‚ใ‚Šใพใ™ใ€‚

;; http://list-archive.xemacs.org/xemacs-beta/200106/msg00314.html
;; ใ ใ‚Œใ‚‚็›ธๆ‰‹ใ—ใฆใใ‚Œใชใ‹ใฃใŸใฎใฏๅค‰ใช่‹ฑ่ชžใฎใ›ใ„ใ‹ใ—ใ‚‰ใ€‚(^^;;)
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
Technical Details
Message-ID: <yosug0asm9n7.fsf@jpl.org>
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!207.228.244.9!not-for-mail
References: <9lbar7$h5g$1@news511.nifty.com> <yosu3d6u6qdn.fsf@jpl.org> <9ld8fs$t6i$1@news512.nifty.com> <yosud75x8pns.fsf@jpl.org> <9leq0g$15s$1@news512.nifty.com>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: 1107f7,5ebf9490fc0312ee
X-Google-Attributes: gid1107f7,public
X-Google-ArrivalTime: 2001-08-16 06:33:14 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!fu-berlin.de!uni-berlin.de!207.228.244.9!not-for-mail
From: Katsumi Yamaoka <yamaoka@jpl.org>
Newsgroups: fj.editor.xemacs
Subject: Re: [Q] c,c++ font-lock on XEmacs
Date: Thu, 16 Aug 2001 22:12:10 +0900
Organization: Emacsen advocacy group
Lines: 75
Message-ID: <yosug0asm9n7.fsf@jpl.org>
References: <9lbar7$h5g$1@news511.nifty.com> <yosu3d6u6qdn.fsf@jpl.org>
 <9ld8fs$t6i$1@news512.nifty.com> <yosud75x8pns.fsf@jpl.org>
 <9leq0g$15s$1@news512.nifty.com>
NNTP-Posting-Host: 207.228.244.9
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
X-Trace: fu-berlin.de 997968215 9599435 207.228.244.9 (16 [27265])
X-Orig-Path: yamaoka
User-Agent: T-gnus/6.15.4 (based on Oort Gnus v0.04) (revision 06)
 XEmacs/21.5 (beta2) (artichoke) (sparc-sun-solaris2.6) WEMI/1.14.3
 (้‡‘่ฐท) CLIME/1.14.3
 (ๅฏบไบ•่ฅฟๅฃ) APEL/10.3
X-Face: #kKnN,xUnmKia.'[pp`;Omh}odZK)?7wQSl"4o04=EixTF+V[""w~iNbM9ZL+.b*_CxUmFk
 B#Fu[*?MZZH@IkN:!"\w%I_zt>[$nm7nQosZ<3eu;B:$Q_:p!',P.c0-_Cy[dz4oIpw0ESA^D*1Lw=
 L&i*6&(