From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Leo Newsgroups: gmane.emacs.devel Subject: Re: abbrev table in cperl-mode Date: Fri, 16 Apr 2010 21:11:15 +0100 Message-ID: References: <20100416191207.GA9408@powdermilk.math.berkeley.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0016e649c6feab33ea04846036a9 X-Trace: dough.gmane.org 1271448850 22925 80.91.229.12 (16 Apr 2010 20:14:10 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 16 Apr 2010 20:14:10 +0000 (UTC) Cc: emacs-devel@gnu.org To: Ilya Zakharevich Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Apr 16 22:14:08 2010 connect(): No such file or directory Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1O2rvT-0008Si-UM for ged-emacs-devel@m.gmane.org; Fri, 16 Apr 2010 22:14:08 +0200 Original-Received: from localhost ([127.0.0.1]:34000 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2rvS-00031L-Vz for ged-emacs-devel@m.gmane.org; Fri, 16 Apr 2010 16:14:07 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O2rso-0001j8-0B for emacs-devel@gnu.org; Fri, 16 Apr 2010 16:11:22 -0400 Original-Received: from [140.186.70.92] (port=41291 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O2rsl-0001hS-R3 for emacs-devel@gnu.org; Fri, 16 Apr 2010 16:11:21 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O2rsj-0005p2-HN for emacs-devel@gnu.org; Fri, 16 Apr 2010 16:11:19 -0400 Original-Received: from mail-ww0-f41.google.com ([74.125.82.41]:57170) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O2rsj-0005oK-AC for emacs-devel@gnu.org; Fri, 16 Apr 2010 16:11:17 -0400 Original-Received: by wwc33 with SMTP id 33so1185097wwc.0 for ; Fri, 16 Apr 2010 13:11:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:received:message-id:subject:from:to:cc:content-type; bh=jILPcGujsMZ1Bg1YQleG/8DgZ6MoL+I9UC1ogmwccRY=; b=dsyKuRn02vgH4t2TI+GAsBGAhdri1rbHy6etq0Rnai5CFp72L7XEOtqR1k7TDQZGsp kZ+60vd8TG+D0Y5jNqpZT93p3PnEr2KduGKepN9EeDCTNXyfTve1QvWwlw+zU8okMh1c UMl0TCGxEKGuKOtQ8GzTDVl5icaaHVgwuuKxI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=HwYZfSMxPo6WjmM6B+KrYpwWWQF6RkQlA/SNnz7bCGw8YZ0gpMr5CDVwoubZKyGIQ5 2HNfh2vLssFf45+ZWoNSWRSPKZMQ8DUO3SLHTvUZEEWagr6FCU8elYIky5JYjkiSSVBd m35opFrQDkY+ViLJukNM16nCya8lIisC1Xfzs= Original-Received: by 10.216.159.71 with HTTP; Fri, 16 Apr 2010 13:11:15 -0700 (PDT) In-Reply-To: <20100416191207.GA9408@powdermilk.math.berkeley.edu> Original-Received: by 10.216.158.3 with SMTP id p3mr2557432wek.9.1271448675758; Fri, 16 Apr 2010 13:11:15 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 2) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:123772 Archived-At: --0016e649c6feab33ea04846036a9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 16 April 2010 20:12, Ilya Zakharevich wrote: > On Fri, Apr 16, 2010 at 12:27:05PM +0100, Leo wrote: >> Hello Ilya, >> >> Is it intended for the abbrevs defined in cperl-mode to be saved to the >> abbrev file i.e. these: >> >> ...... >> (let ((prev-a-c abbrevs-changed)) >> =A0 =A0 (define-abbrev-table 'cperl-mode-abbrev-table '( >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("if" "if" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("elsif" "elsif" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("while" "while" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("until" "until" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("unless" "unless" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("else" "else" cperl-electric-else 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("continue" "continue" cperl-electric-else 0= ) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("for" "for" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("foreach" "foreach" cperl-electric-keyword = 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("formy" "formy" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("foreachmy" "foreachmy" cperl-electric-keyw= ord 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("do" "do" cperl-electric-keyword 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("=3Dpod" "=3Dpod" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("=3Dover" "=3Dover" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("=3Dhead1" "=3Dhead1" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("=3Dhead2" "=3Dhead2" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("pod" "pod" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("over" "over" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("head1" "head1" cperl-electric-pod 0) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 ("head2" "head2" cperl-electric-pod 0))) >> =A0 =A0 =A0 (setq abbrevs-changed prev-a-c)) >> ...... >> >> It seems a bit better to define them as system abbrevs. > > I trust your word for this. =A0;-) =A0What you see is the "I implemented > it the way I could - given my very limited understanding of > abbreviation tables" approach. Generally I think program should define system abbrevs to differentiate from abbrevs defined by the user. And each time define-abbrev-* runs, the abbrev definitions are overwritten anyway. The attached patch does this. BTW, defining system abbrevs doesn't change abbrev-changed so I leave the (let ...) out. > Try to educate me more, > Ilya Leo --0016e649c6feab33ea04846036a9 Content-Type: application/octet-stream; name="0001-Fix-cperl-mode-abbrevs.patch" Content-Disposition: attachment; filename="0001-Fix-cperl-mode-abbrevs.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g83flv4n0 RnJvbSA0NWJlZTRlODAzMTQ1NjMyNDNiNzFhNzEwYmVhYWU3YTJkOGVjZTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMZW8gPHNkbC53ZWJAZ21haWwuY29tPgpEYXRlOiBGcmksIDE2 IEFwciAyMDEwIDIxOjA5OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSF0gRml4IGNwZXJsLW1vZGUg YWJicmV2cwoKLS0tCiBsaXNwL3Byb2dtb2Rlcy9jcGVybC1tb2RlLmVsIHwgICA0NCArKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlcyBjaGFuZ2VkLCAyMSBp bnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rl cy9jcGVybC1tb2RlLmVsIGIvbGlzcC9wcm9nbW9kZXMvY3BlcmwtbW9kZS5lbAppbmRleCAyZjc1 MWYyLi4xMGQ1YmYzIDEwMDY0NAotLS0gYS9saXNwL3Byb2dtb2Rlcy9jcGVybC1tb2RlLmVsCisr KyBiL2xpc3AvcHJvZ21vZGVzL2NwZXJsLW1vZGUuZWwKQEAgLTE3MTQsMjkgKzE3MTQsMjcgQEAg b3IgYXMgaGVscCBvbiB2YXJpYWJsZXMgYGNwZXJsLXRpcHMnLCBgY3BlcmwtcHJvYmxlbXMnLAog CQkJICBbKGNvbnRyb2wgYykgKGNvbnRyb2wgaCkgZl0pKSkKICAgKHNldHEgbWFqb3ItbW9kZSBj cGVybC11c2UtbWFqb3ItbW9kZSkKICAgKHNldHEgbW9kZS1uYW1lICJDUGVybCIpCi0gIChsZXQg KChwcmV2LWEtYyBhYmJyZXZzLWNoYW5nZWQpKQotICAgIChkZWZpbmUtYWJicmV2LXRhYmxlICdj cGVybC1tb2RlLWFiYnJldi10YWJsZSAnKAotCQkoImlmIiAiaWYiIGNwZXJsLWVsZWN0cmljLWtl eXdvcmQgMCkKLQkJKCJlbHNpZiIgImVsc2lmIiBjcGVybC1lbGVjdHJpYy1rZXl3b3JkIDApCi0J CSgid2hpbGUiICJ3aGlsZSIgY3BlcmwtZWxlY3RyaWMta2V5d29yZCAwKQotCQkoInVudGlsIiAi dW50aWwiIGNwZXJsLWVsZWN0cmljLWtleXdvcmQgMCkKLQkJKCJ1bmxlc3MiICJ1bmxlc3MiIGNw ZXJsLWVsZWN0cmljLWtleXdvcmQgMCkKLQkJKCJlbHNlIiAiZWxzZSIgY3BlcmwtZWxlY3RyaWMt ZWxzZSAwKQotCQkoImNvbnRpbnVlIiAiY29udGludWUiIGNwZXJsLWVsZWN0cmljLWVsc2UgMCkK LQkJKCJmb3IiICJmb3IiIGNwZXJsLWVsZWN0cmljLWtleXdvcmQgMCkKLQkJKCJmb3JlYWNoIiAi Zm9yZWFjaCIgY3BlcmwtZWxlY3RyaWMta2V5d29yZCAwKQotCQkoImZvcm15IiAiZm9ybXkiIGNw ZXJsLWVsZWN0cmljLWtleXdvcmQgMCkKLQkJKCJmb3JlYWNobXkiICJmb3JlYWNobXkiIGNwZXJs LWVsZWN0cmljLWtleXdvcmQgMCkKLQkJKCJkbyIgImRvIiBjcGVybC1lbGVjdHJpYy1rZXl3b3Jk IDApCi0JCSgiPXBvZCIgIj1wb2QiIGNwZXJsLWVsZWN0cmljLXBvZCAwKQotCQkoIj1vdmVyIiAi PW92ZXIiIGNwZXJsLWVsZWN0cmljLXBvZCAwKQotCQkoIj1oZWFkMSIgIj1oZWFkMSIgY3Blcmwt ZWxlY3RyaWMtcG9kIDApCi0JCSgiPWhlYWQyIiAiPWhlYWQyIiBjcGVybC1lbGVjdHJpYy1wb2Qg MCkKLQkJKCJwb2QiICJwb2QiIGNwZXJsLWVsZWN0cmljLXBvZCAwKQotCQkoIm92ZXIiICJvdmVy IiBjcGVybC1lbGVjdHJpYy1wb2QgMCkKLQkJKCJoZWFkMSIgImhlYWQxIiBjcGVybC1lbGVjdHJp Yy1wb2QgMCkKLQkJKCJoZWFkMiIgImhlYWQyIiBjcGVybC1lbGVjdHJpYy1wb2QgMCkpKQotCShz ZXRxIGFiYnJldnMtY2hhbmdlZCBwcmV2LWEtYykpCisgIChkZWZpbmUtYWJicmV2LXRhYmxlICdj cGVybC1tb2RlLWFiYnJldi10YWJsZQorICAgICcoKCJpZiIgImlmIiBjcGVybC1lbGVjdHJpYy1r ZXl3b3JkIDAgdCkKKyAgICAgICgiZWxzaWYiICJlbHNpZiIgY3BlcmwtZWxlY3RyaWMta2V5d29y ZCAwIHQpCisgICAgICAoIndoaWxlIiAid2hpbGUiIGNwZXJsLWVsZWN0cmljLWtleXdvcmQgMCB0 KQorICAgICAgKCJ1bnRpbCIgInVudGlsIiBjcGVybC1lbGVjdHJpYy1rZXl3b3JkIDAgdCkKKyAg ICAgICgidW5sZXNzIiAidW5sZXNzIiBjcGVybC1lbGVjdHJpYy1rZXl3b3JkIDAgdCkKKyAgICAg ICgiZWxzZSIgImVsc2UiIGNwZXJsLWVsZWN0cmljLWVsc2UgMCB0KQorICAgICAgKCJjb250aW51 ZSIgImNvbnRpbnVlIiBjcGVybC1lbGVjdHJpYy1lbHNlIDAgdCkKKyAgICAgICgiZm9yIiAiZm9y IiBjcGVybC1lbGVjdHJpYy1rZXl3b3JkIDAgdCkKKyAgICAgICgiZm9yZWFjaCIgImZvcmVhY2gi IGNwZXJsLWVsZWN0cmljLWtleXdvcmQgMCB0KQorICAgICAgKCJmb3JteSIgImZvcm15IiBjcGVy bC1lbGVjdHJpYy1rZXl3b3JkIDAgdCkKKyAgICAgICgiZm9yZWFjaG15IiAiZm9yZWFjaG15IiBj cGVybC1lbGVjdHJpYy1rZXl3b3JkIDAgdCkKKyAgICAgICgiZG8iICJkbyIgY3BlcmwtZWxlY3Ry aWMta2V5d29yZCAwIHQpCisgICAgICAoIj1wb2QiICI9cG9kIiBjcGVybC1lbGVjdHJpYy1wb2Qg MCB0KQorICAgICAgKCI9b3ZlciIgIj1vdmVyIiBjcGVybC1lbGVjdHJpYy1wb2QgMCB0KQorICAg ICAgKCI9aGVhZDEiICI9aGVhZDEiIGNwZXJsLWVsZWN0cmljLXBvZCAwIHQpCisgICAgICAoIj1o ZWFkMiIgIj1oZWFkMiIgY3BlcmwtZWxlY3RyaWMtcG9kIDAgdCkKKyAgICAgICgicG9kIiAicG9k IiBjcGVybC1lbGVjdHJpYy1wb2QgMCB0KQorICAgICAgKCJvdmVyIiAib3ZlciIgY3BlcmwtZWxl Y3RyaWMtcG9kIDAgdCkKKyAgICAgICgiaGVhZDEiICJoZWFkMSIgY3BlcmwtZWxlY3RyaWMtcG9k IDAgdCkKKyAgICAgICgiaGVhZDIiICJoZWFkMiIgY3BlcmwtZWxlY3RyaWMtcG9kIDAgdCkpKQog ICAoc2V0cSBsb2NhbC1hYmJyZXYtdGFibGUgY3BlcmwtbW9kZS1hYmJyZXYtdGFibGUpCiAgIChp ZiAoY3BlcmwtdmFsICdjcGVybC1lbGVjdHJpYy1rZXl3b3JkcykKICAgICAgIChhYmJyZXYtbW9k ZSAxKSkKLS0gCjEuNy4wLjQKCg== --0016e649c6feab33ea04846036a9--