unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Insert ; after closing parenthesis when on it
@ 2007-02-14 18:44 Jiri Pejchal
  0 siblings, 0 replies; 11+ messages in thread
From: Jiri Pejchal @ 2007-02-14 18:44 UTC (permalink / raw)
  To: help-gnu-emacs


Hi,

Netbeans has a following nice feature: when the cursor is on the last
parenthesis of a function call and you press ';', the semicolon is
automatically inserted after the parenthesis. This is very useful
because the opening parenthesis usually inserts also the closing
parenthesis. In emacs after adding arguments you are left with the
cursor on the closing one. Then you have to press right and then ';'.

What I would like to achieve:

object.methodCall(a, b|)
                      ^
                      |
                      |
                      cursor here
                      (actually on the parenthesis)

press ';' and get this:

object.methodCall(a, b);|
                        ^
                        |
                        |
                        cursor here
                        (or even on the next line)


Is this possible in emacs and jdee (or c++ mode)?

Thanks.

--
Jiri Pejchal

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
       [not found] <mailman.4516.1171478780.2155.help-gnu-emacs@gnu.org>
@ 2007-02-14 19:03 ` weber
  2007-02-14 20:09   ` Jiri Pejchal
       [not found]   ` <mailman.4523.1171483812.2155.help-gnu-emacs@gnu.org>
  2007-02-14 19:08 ` weber
  1 sibling, 2 replies; 11+ messages in thread
From: weber @ 2007-02-14 19:03 UTC (permalink / raw)
  To: help-gnu-emacs

On 14 fev, 15:44, Jiri Pejchal <jiri.pejc...@gmail.com> wrote:
> Hi,
>
> Netbeans has a following nice feature: when the cursor is on the last
> parenthesis of a function call and you press ';', the semicolon is
> automatically inserted after the parenthesis. This is very useful
> because the opening parenthesis usually inserts also the closing
> parenthesis. In emacs after adding arguments you are left with the
> cursor on the closing one. Then you have to press right and then ';'.
>
> What I would like to achieve:
>
> object.methodCall(a, b|)
>                       ^
>                       |
>                       |
>                       cursor here
>                       (actually on the parenthesis)
>
> press ';' and get this:
>
> object.methodCall(a, b);|
>                         ^
>                         |
>                         |
>                         cursor here
>                         (or even on the next line)
>
> Is this possible in emacs and jdee (or c++ mode)?
>
> Thanks.
>
> --
> Jiri Pejchal

There's probably a faster way, but the way I know is remapping the ';'
key like this:

(global-set-key ";" 'insert-closepar)

where the function insert-closepar would be something like this
(tested) :

(defun insert-closepar ()
 "Close parenthesis Jiri's way"
  (interactive)
  (if (looking-at ")")
		(forward-char))
  (insert ";"))

Oh, and you probably don't want to make that binding global map,
because you are only going to use it on specific modes. Try doing:
 (define-key somelanguage-mode-map ";" 'insert-closepar)

Hope I could help,
weber


Cheers,
weber

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
       [not found] <mailman.4516.1171478780.2155.help-gnu-emacs@gnu.org>
  2007-02-14 19:03 ` Insert ; after closing parenthesis when on it weber
@ 2007-02-14 19:08 ` weber
  1 sibling, 0 replies; 11+ messages in thread
From: weber @ 2007-02-14 19:08 UTC (permalink / raw)
  To: help-gnu-emacs

On 14 fev, 15:44, Jiri Pejchal <jiri.pejc...@gmail.com> wrote:
> Hi,
>
> Netbeans has a following nice feature: when the cursor is on the last
> parenthesis of a function call and you press ';', the semicolon is
> automatically inserted after the parenthesis. This is very useful
> because the opening parenthesis usually inserts also the closing
> parenthesis. In emacs after adding arguments you are left with the
> cursor on the closing one. Then you have to press right and then ';'.
>
> What I would like to achieve:
>
> object.methodCall(a, b|)
>                       ^
>                       |
>                       |
>                       cursor here
>                       (actually on the parenthesis)
>
> press ';' and get this:
>
> object.methodCall(a, b);|
>                         ^
>                         |
>                         |
>                         cursor here
>                         (or even on the next line)
>
> Is this possible in emacs and jdee (or c++ mode)?
>
> Thanks.
>
> --
> Jiri Pejchal


There's probably a faster way, but the way I know is remapping the ';'
key like this:

(global-set-key ";" 'jump-closepar)

where the function jump-closepar would be something like this
(tested) :

(defun jump-closepar ()
 "Close parenthesis Jiri's way"
 (interactive)
 (if (looking-at ")")
               (forward-char))
 (insert ";"))

Oh, and you probably don't want to make that binding global map,
because you are only going to use it on specific modes. Try doing:
 (define-key somelanguage-mode-map ";" 'jump-closepar)

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-14 19:03 ` Insert ; after closing parenthesis when on it weber
@ 2007-02-14 20:09   ` Jiri Pejchal
  2007-02-14 20:41     ` Matthew Flaschen
  2007-02-15  2:36     ` Herbert Euler
       [not found]   ` <mailman.4523.1171483812.2155.help-gnu-emacs@gnu.org>
  1 sibling, 2 replies; 11+ messages in thread
From: Jiri Pejchal @ 2007-02-14 20:09 UTC (permalink / raw)
  To: help-gnu-emacs

"weber" <hugows@gmail.com> writes:

> There's probably a faster way, but the way I know is remapping the ';'
> key like this:
>
> (global-set-key ";" 'insert-closepar)
>
> where the function insert-closepar would be something like this
> (tested) :
>
> (defun insert-closepar ()
>  "Close parenthesis Jiri's way"
>   (interactive)
>   (if (looking-at ")")
> 		(forward-char))
>   (insert ";"))
>
> Oh, and you probably don't want to make that binding global map,
> because you are only going to use it on specific modes. Try doing:
>  (define-key somelanguage-mode-map ";" 'insert-closepar)

Thanks a lot! But I would like to keep the electric behaviour of ';'
too. It's bound to  c-electric-semi&comma.


--
Jiri Pejchal

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
       [not found]   ` <mailman.4523.1171483812.2155.help-gnu-emacs@gnu.org>
@ 2007-02-14 20:36     ` weber
  2007-02-14 21:36       ` Jiri Pejchal
       [not found]       ` <mailman.4529.1171488981.2155.help-gnu-emacs@gnu.org>
  0 siblings, 2 replies; 11+ messages in thread
From: weber @ 2007-02-14 20:36 UTC (permalink / raw)
  To: help-gnu-emacs

On 14 fev, 17:09, Jiri Pejchal <jiri.pejc...@gmail.com> wrote:
> "weber" <hug...@gmail.com> writes:
> > There's probably a faster way, but the way I know is remapping the ';'
> > key like this:
>
> > (global-set-key ";" 'insert-closepar)
>
> > where the function insert-closepar would be something like this
> > (tested) :
>
> > (defun insert-closepar ()
> >  "Close parenthesis Jiri's way"
> >   (interactive)
> >   (if (looking-at ")")
> >            (forward-char))
> >   (insert ";"))
>
> > Oh, and you probably don't want to make that binding global map,
> > because you are only going to use it on specific modes. Try doing:
> >  (define-key somelanguage-mode-map ";" 'insert-closepar)
>
> Thanks a lot! But I would like to keep the electric behaviour of ';'
> too. It's bound to  c-electric-semi&comma.
>
> --
> Jiri Pejchal

I couldn't test that here, but maybe just doing something like this
works ?

(defun jump-closepar ()
 "Close parenthesis Jiri's way"
 (interactive)
 (if (looking-at ")")
               (forward-char))
 (c-electric-semi&comma))

Just a guess...
cheers,
weber

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-14 20:09   ` Jiri Pejchal
@ 2007-02-14 20:41     ` Matthew Flaschen
  2007-02-15  2:36     ` Herbert Euler
  1 sibling, 0 replies; 11+ messages in thread
From: Matthew Flaschen @ 2007-02-14 20:41 UTC (permalink / raw)
  To: emacs


[-- Attachment #1.1: Type: text/plain, Size: 975 bytes --]

Jiri Pejchal wrote:
> "weber" <hugows@gmail.com> writes:
> 
>> There's probably a faster way, but the way I know is remapping the ';'
>> key like this:
>>
>> (global-set-key ";" 'insert-closepar)
>>
>> where the function insert-closepar would be something like this
>> (tested) :
>>
>> (defun insert-closepar ()
>>  "Close parenthesis Jiri's way"
>>   (interactive)
>>   (if (looking-at ")")
>> 		(forward-char))
>>   (insert ";"))
>>
>> Oh, and you probably don't want to make that binding global map,
>> because you are only going to use it on specific modes. Try doing:
>>  (define-key somelanguage-mode-map ";" 'insert-closepar)
> 
> Thanks a lot! But I would like to keep the electric behaviour of ';'
> too. It's bound to  c-electric-semi&comma.

Try changing it to:

(defun insert-closepar ()
 "Close parenthesis Jiri's way"
   (interactive)
   (if (looking-at ")")
 		(forward-char))
   (c-electric-semi&comma))

Matthew Flaschen


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

[-- Attachment #2: Type: text/plain, Size: 152 bytes --]

_______________________________________________
help-gnu-emacs mailing list
help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-14 20:36     ` weber
@ 2007-02-14 21:36       ` Jiri Pejchal
       [not found]       ` <mailman.4529.1171488981.2155.help-gnu-emacs@gnu.org>
  1 sibling, 0 replies; 11+ messages in thread
From: Jiri Pejchal @ 2007-02-14 21:36 UTC (permalink / raw)
  To: help-gnu-emacs

"weber" <hugows@gmail.com> writes:
> I couldn't test that here, but maybe just doing something like this
> works ?
>
> (defun jump-closepar ()
>  "Close parenthesis Jiri's way"
>  (interactive)
>  (if (looking-at ")")
>                (forward-char))
>  (c-electric-semi&comma))

It wants an argument:

(defun c-electric-semi&comma (arg)
  "Insert a comma or semicolon.

And (c-electric-semi&comma ";") inserts ^E for me.

--
Jiri Pejchal

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-14 20:09   ` Jiri Pejchal
  2007-02-14 20:41     ` Matthew Flaschen
@ 2007-02-15  2:36     ` Herbert Euler
  2007-02-15  2:40       ` Herbert Euler
  1 sibling, 1 reply; 11+ messages in thread
From: Herbert Euler @ 2007-02-15  2:36 UTC (permalink / raw)
  To: jiri.pejchal, help-gnu-emacs

>Thanks a lot! But I would like to keep the electric behaviour of ';'
>too. It's bound to  c-electric-semi&comma.

I wrote a package for doing this, you can try it out.

http://sourceforge.net/projects/casi-mode

Please contact me if you have any problems.  And any suggestions
are welcomed.

Thanks.

Regards,
Guanpeng Xu

_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now! 
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-15  2:36     ` Herbert Euler
@ 2007-02-15  2:40       ` Herbert Euler
  0 siblings, 0 replies; 11+ messages in thread
From: Herbert Euler @ 2007-02-15  2:40 UTC (permalink / raw)
  To: herberteuler, jiri.pejchal, help-gnu-emacs

>>Thanks a lot! But I would like to keep the electric behaviour of ';'
>>too. It's bound to  c-electric-semi&comma.
>
>I wrote a package for doing this, you can try it out.
>
>http://sourceforge.net/projects/casi-mode

Hmmm...  If you do want to try it, please download the code from CVS.
It is newer than the released file.

http://casi-mode.cvs.sourceforge.net/casi-mode/casi-mode/

Regards,
Guanpeng Xu

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! 
http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
       [not found]       ` <mailman.4529.1171488981.2155.help-gnu-emacs@gnu.org>
@ 2007-02-16  7:34         ` Markus Triska
  2007-02-16 18:32           ` Jiri Pejchal
  0 siblings, 1 reply; 11+ messages in thread
From: Markus Triska @ 2007-02-16  7:34 UTC (permalink / raw)
  To: help-gnu-emacs

Jiri Pejchal <jiri.pejchal@gmail.com> writes:

> And (c-electric-semi&comma ";") inserts ^E for me.

Try:  (c-electric-semi&comma nil)

All the best,
Markus Triska

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Insert ; after closing parenthesis when on it
  2007-02-16  7:34         ` Markus Triska
@ 2007-02-16 18:32           ` Jiri Pejchal
  0 siblings, 0 replies; 11+ messages in thread
From: Jiri Pejchal @ 2007-02-16 18:32 UTC (permalink / raw)
  To: help-gnu-emacs

Markus Triska <e0225855@stud4.tuwien.ac.at> writes:

> Jiri Pejchal <jiri.pejchal@gmail.com> writes:
>
>> And (c-electric-semi&comma ";") inserts ^E for me.
>
> Try:  (c-electric-semi&comma nil)
>
> All the best,
> Markus Triska

I see. Thanks. I have also changed if to while and the final version is:

(defun jump-closepar ()
 "Close parenthesis Jiri's way"
 (interactive)
 (while (looking-at ")")
               (forward-char))
 (c-electric-semi&comma nil))


 --
 Jiri Pejchal

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2007-02-16 18:32 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.4516.1171478780.2155.help-gnu-emacs@gnu.org>
2007-02-14 19:03 ` Insert ; after closing parenthesis when on it weber
2007-02-14 20:09   ` Jiri Pejchal
2007-02-14 20:41     ` Matthew Flaschen
2007-02-15  2:36     ` Herbert Euler
2007-02-15  2:40       ` Herbert Euler
     [not found]   ` <mailman.4523.1171483812.2155.help-gnu-emacs@gnu.org>
2007-02-14 20:36     ` weber
2007-02-14 21:36       ` Jiri Pejchal
     [not found]       ` <mailman.4529.1171488981.2155.help-gnu-emacs@gnu.org>
2007-02-16  7:34         ` Markus Triska
2007-02-16 18:32           ` Jiri Pejchal
2007-02-14 19:08 ` weber
2007-02-14 18:44 Jiri Pejchal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).