unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: "William Payne" <mikas_n_o_s_p_a_m_493@student.liu.se>
Subject: Re: Hungry delete for C, C++ and Java?
Date: Thu, 22 Apr 2004 18:18:28 +0200	[thread overview]
Message-ID: <c68r8g$3k9$1@news.island.liu.se> (raw)
In-Reply-To: ipb86c.q5.ln@acm.acm


"Alan Mackenzie" <none@example.invalid> wrote in message
news:ipb86c.q5.ln@acm.acm...
> William Payne <mikas_n_o_s_p_a_m_493@student.liu.se> wrote on Wed, 21 Apr
> 2004 00:27:06 +0200:
>
> >> > .... and I was wondering how I turn on hungry delete per default for
> >> > C, C++ and Java?
>
> >> In an appropriate hook function (probably on c-mode-common-hook)
include:
>
> >> (c-toggle-hungry-state 1)
>
> >> [, and as a matter of interest, C-c C-d will execute
> >> `c-toggle-hungry-state' interactively].  <backspace> and C-d (but not
> >> <del>) then do hungry deletion.  It looks as thought the fine manual
> >> could do with some clarification on this point.
>
> > Thanks for the reply, Alan. My .emacs file is as follows, where should
> > I put (c-toggle-hungry-state 1)? Under (defun my-c++-mode ()
> > (interactive) and (defun my-java-mode () (interactive) ?
>
> > My .emacs file was created years and years ago by someone else, I wish I
> > understood it better...I am guessing it could be cleaned-up/improved
alot.
>
> > Fyi, I am using CC-Mode 5.30.8.
>
> A stable released version without bugs. (hah! :-)
>
> OK, a few comments on your .emacs file:
>
> >   '("\\.pike$"   . my-c++-mode)    ; element of auto-mode-alist
>
> There is actually a Pike Mode within CC Mode.  If that's the same
> language that your files.pike are, it would be better than c++-mode.

Thanks for noticing this. I have removed this entry completely.

> Also, you're using C++ Mode for C files.  Also not _so_ bad, but not
> quite optimal.
>

Yes, I guess I should change that. First I will have to convert all my c++
header files to end in .hpp instead of .h. I also have to fix the
indentation in some cases, it's not behaving as I want it to behave.

> > (defun my-java-mode () (interactive)
> >   (java-mode)
> >   (require 'jdok)
> >   (c-toggle-hungry-state 1)   ;  <====================================
> >   (setq c-basic-offset 3) ; Indent three columns.
> >   (setq c-offsets-alist
>
> It looks like you've already got c-toggle-hungry-state turned on, here.
> Does it work?  Have you inserted this line here in the last day or two,
> perhaps?  It ought to work.
>

I added that after your first reply and, yes, it works. =)

> If it now works and you're happy about it, that's great, and just ignore
> what follows.
>
> #########################################################################
>
> However, if you're interested in getting to know Emacs and CC Mode a bit
> better, the way you've got CC Mode configured is highly unusual, and
> suggests the person who wrote the .emacs didn't fully understand the way
> Emacs works.
>
> Your setup for C++ Mode looks like this in outline:
>
> (defun my-c++-mode ()
>   (c++-mode)
>   (williams-customizations))
>
> This compels you to add entries to auto-mode-alist (this is the list
> which tells Emacs which mode to use for a filename).  Normally C++ Mode
> is configured by using "hooks" - you give c++-mode a list of functions
> you want to get called whenever c++-mode runs.  You then get the
> customizations you want without need to have functions like my-c++-mode.
> You could reformulate your code like this:
>
> (defun williams-c++-hook ()
>   (williams-customizations))
> (add-hook 'c++-mode-hook 'williams-c++-hook)
>
> That way, you could get rid of all these entries to auto-mode-alist.
> Customizations which are common to C, C++, Java, Pike, (such as the
> call of c-toggle-hungry-state) you need only write once, in
> c-mode-common-hook, like this:
>
> (defun williams-common-hook ()
>   (c-toggle-hungry-state 1)
>   (other-customizations))
> (add-hook 'c-mode-common-hook 'williams-common-hook)
>
> This is extensively described on the page "Hooks" in the CC Mode manual,
> and the page "Sample .emacs File" would also be of interest.
>
> > / WP
>

I am very interested in cleaning up my .emacs-file and understanding emacs
and cc-mode better. I am not quite sure I follow you on the hooks (having
done zero lisp coding), but I will try to understand it and incorporate your
suggestions.
> -- 
> Alan Mackenzie (Munich, Germany)
> Email: aacm@muuc.dee; to decode, wherever there is a repeated letter
> (like "aa"), remove half of them (leaving, say, "a").
>

/ William Payne

  reply	other threads:[~2004-04-22 16:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <c63fvv$g2j$1@news.island.liu.se>
     [not found] ` <68n36c.q5.ln@acm.acm>
2004-04-20 22:27   ` Hungry delete for C, C++ and Java? William Payne
2004-04-22 11:54     ` Alan Mackenzie
2004-04-22 16:18       ` William Payne [this message]
2004-04-22 16:36         ` William Payne
2004-04-22 17:55           ` William Payne
2004-04-24 21:03   ` Kai Grossjohann
2004-04-25  6:33     ` Alan Mackenzie

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

  List information: https://www.gnu.org/software/emacs/

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

  git send-email \
    --in-reply-to='c68r8g$3k9$1@news.island.liu.se' \
    --to=mikas_n_o_s_p_a_m_493@student.liu.se \
    /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.
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).