From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: abbrevs, skeletons, and comments Date: Tue, 12 Jun 2007 09:50:21 -0400 Message-ID: References: <1180794889.290796.147660@m36g2000hse.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1181659250 21307 80.91.229.12 (12 Jun 2007 14:40:50 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 12 Jun 2007 14:40:50 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Tue Jun 12 16:40:48 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Hy7Y6-0001D1-Q2 for geh-help-gnu-emacs@m.gmane.org; Tue, 12 Jun 2007 16:40:47 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Hy7Y6-0007ke-Dl for geh-help-gnu-emacs@m.gmane.org; Tue, 12 Jun 2007 10:40:46 -0400 Original-Path: shelby.stanford.edu!newsfeed.stanford.edu!postnews.google.com!news1.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local01.nntp.dca.giganews.com!nntp.umontreal.ca!news.umontreal.ca.POSTED!not-for-mail Original-NNTP-Posting-Date: Tue, 12 Jun 2007 08:50:21 -0500 Original-Newsgroups: gnu.emacs.help User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) Cancel-Lock: sha1:uMUd2Lipv4bqibkHdXN9aTxoRi0= Original-Lines: 26 Original-NNTP-Posting-Host: 132.204.27.213 Original-X-Trace: sv3-OWJdD5fIKlzaoCi2d+nBKxziFcHYSZeiXyigRA79Km8r+rBh2jG96GD9ZNsdcFlggmasmeq663+i95M!Vvam4B5+u7tY4+UB+t1ZEwAY5UV7JLBOivOlFB1Qqm2IFJPGYmcX9MbPsk8aCVO+b6eotD4hTDkr!0GlxoMPTun19JxR/Kg== Original-X-Complaints-To: abuse@umontreal.ca X-DMCA-Complaints-To: abuse@umontreal.ca X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.34 Original-Xref: shelby.stanford.edu gnu.emacs.help:149347 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:44937 Archived-At: > In a module I'm writing, I'd like to bind abbrevs to code skeletons, > similar to what is done e.g. by sml-mode. But expanding the abbrevs > makes no sense when the point is inside a comment (or a string > literal). So I'd like to conditionally stop expansion. That's a good point. An easy way to do that is instead of defining the abbrev as (define-abbrev sml-mode-abbrev-table ,name "" ',fsym nil 'system) where `fsym' is the name of the skeleton function, you can define it as (define-abbrev sml-mode-abbrev-table ,name "" (lambda () (unless (nth 8 (syntax-ppss)) (call-interactively ',fsym))) nil 'system) Hmm... ah no, then it just erases the abbrev's name, so you have to adjust the function so it re-inserts the text. And then you have the issue of whether or not the space that follows the abbrev name was/is inserted, .... Yuck! I guess this deserves a feature-request via M-x report-emacs-bug. Stefan