all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludwig, Mark" <ludwig.mark@siemens.com>
To: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: RE: Help on indentation
Date: Fri, 30 Mar 2012 13:44:05 +0000	[thread overview]
Message-ID: <BC5672F8AD4C054BAF167C9801500D1A731BB985@USSLMMBX003.net.plm.eds.com> (raw)
In-Reply-To: 1333087227.94015.YahooMailNeo@web192403.mail.sg3.yahoo.com

[-- Attachment #1: Type: text/plain, Size: 2964 bytes --]

There is curious synchronicity on this topic, because my colleagues are reviewing some of my code this week and are challenging me about the spaces before the argument lists for function calls.  (They mostly use 'vi'....)

Normal Emacs behavior using M-( results in the following (could be Java or C):

   if (foo1 (bar, baz))
      foo2 ();

What we want is:

   if (foo1(bar, baz))
      foo2();

That is, we only want a space to be inserted after a language keyword.  Has anyone hacked this (presumably as part of or in conjunction with CC Mode) for conditionally adding the space before the open parentheses?  The reason I expect it to be related to CC Mode is that it's the fact that "if" is a language keyword that makes the difference, and CC Mode already knows about the keywords.  Looking at insert-parentheses and insert-pair, it seems as though insert-parentheses could be wrapped in something like cc-insert-parentheses to do this.  That's what I'll start doing if no one else pipes up....

Thanks!
Mark

From: Ludwig, Mark
Sent: Friday, March 30, 2012 7:36 AM
To: 'manish honap'; Nash Steve
Cc: help-gnu-emacs@gnu.org
Subject: RE: Help on indentation

It's not at all clear why you needed to do this, since M-( is normally bound to insert-parentheses.  (AFAIK, it has been this way for decades.)

Regarding making the '(' character do this, by convention, it would be an "electric" function, and it's probably not very hard to write.  You might even be happy just binding '(' to insert-parentheses.

Hope this helps,
Mark

From: help-gnu-emacs-bounces+ludwig.mark=siemens.com@gnu.org [mailto:help-gnu-emacs-bounces+ludwig.mark=siemens.com@gnu.org] On Behalf Of manish honap
Sent: Friday, March 30, 2012 1:00 AM
To: Nash Steve
Cc: help-gnu-emacs@gnu.org
Subject: Re: Help on indentation

Thanks for your help.

I got a hint from `http://www.emacswiki.org/emacs/LineCopyChar'
and I added,

(defun insert-paren-pair (&optional b)
  (interactive "p")
  (let (p col s)
    (setq p (point))
    (setq col (current-column))
    (move-to-column col)
    (goto-char p)
    (insert " ()")
    (goto-char (- (point) 1))))

(define-key global-map (kbd "M-(") 'insert-paren-pair)

to my .emacs

this won't solve the original problem, but for specific keywords it will suffice.

________________________________
From: Nash Steve <nash11228@gmail.com>
To: manish honap <manish_honap_vit@yahoo.co.in>
Cc: "help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Sent: Friday, 30 March 2012 12:29 AM
Subject: Re: Help on indentation

insert-parentheses may help.

On Thu, Mar 29, 2012 at 6:58 AM, manish honap <manish_honap_vit@yahoo.co.in<mailto:manish_honap_vit@yahoo.co.in>> wrote:
I have following query,

In cc-mode
whenever I type `(', I want emacs to automatically insert space before it,
just for symbols [if | while | for | switch] during typing;

How it can be done ?

Thanks,
Manish



[-- Attachment #2: Type: text/html, Size: 21720 bytes --]

  parent reply	other threads:[~2012-03-30 13:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-29 10:58 Help on indentation manish honap
2012-03-29 18:59 ` Nash Steve
2012-03-30  6:00   ` manish honap
2012-03-30 12:35     ` Ludwig, Mark
2012-03-31 15:50       ` manish honap
2012-03-30 13:44     ` Ludwig, Mark [this message]
2012-03-31 15:52       ` manish honap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BC5672F8AD4C054BAF167C9801500D1A731BB985@USSLMMBX003.net.plm.eds.com \
    --to=ludwig.mark@siemens.com \
    --cc=help-gnu-emacs@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.