help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: continuing indentation in for loop condition in cc-mode


From: Emanuel Berg
Subject: Re: continuing indentation in for loop condition in cc-mode
Date: Mon, 15 Feb 2016 01:56:45 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Gregory Fong <gregory.0xf0@gmail.com> writes:

> (sorry if you get this twice, I didn't realize
> I wasn't subscribed to the list, tried to send using
> gmane, then that didn't work, so now I'm just using
> the reply mailto button from the archive, which
> might break the thread)

I didn't see this until now because I have splitting
which places mails that are sent to me *and* the list
in a special out-of-action newsgroup. I check that now
and then. Why I didn't see it in the newsgroup itself
(gmane.emacs.help) remains as mystery tho...

> I personally like the default. Unfortunately, the
> company I work for uses the style I mentioned at
> the top.
>
> This is mostly surprising to me because it's really
> the only indentation issue I've ever run into using
> emacs. Everything else has been customizable

This is customizable as well. Or rather it is (at
least) programmable like everything else.

Check out this file:

    http://user.it.uu.se/~embe8573/fps/fpscalc.el

The "fpscalc-indent-line" is the function that
does indentation.

There should be a similar function for the C++ mode.
It is most likely more advanced and better, as it has
a bigger domain and more people worked on it for
a much longer time. But the principle that a function
does indentation should be the same.

So you can start by finding that function, continue by
understanding it, and last push for the summit by
modifying it to do you bidding.

That should be pretty simple :)

>> And, for such a basic for loop, why not put
>> everything on the same line?
>>
>> for (int i = 0; i < ARRAY_SIZE; i++) { ... }
>
> Yes, that was a poor example. I was thinking more of
> the sorts of long lines you tend to get when working
> in C++ with iterators, in which case I'm trying to get
> it to look like this:
>
>     for (auto iter =
> RidiculouslyLongClassName.begin(); iter <
> RidiculouslyLongClassName.end(); ++iter) { ... }

Yuk! That reminds me of Java. But it doesn't have to
be *that* bad.

You don't have to do initialization of the iterator
within the for loop syntax, right?

And you can likewise assign an external variable
(external to the for loop syntax) to hold the range of
the iteration, instead of invoking the end() method
at each iteration.

It is perhaps not the OO way but it'll solve
(workaround) the syntax/indentation issue.

> As it is right now, I keep having to remember to fix
> the indentation manually, which has been driving
> me nuts.

Really? What's wrong with fixing it manually?
For example this message I have written 100% manually
with zero problems. How many such loops do you do each
day? Perhaps you should do mental-physical training,
e.g. yoga, instead of getting nuts at corporate-style
C++ indentation?

> If there's a known way to change this behavior, or
> if you have an idea on where to start looking at how
> to do this, I'd love to hear it. Just not sure where
> to start.

Start at the Elisp code which is the Emacs C++ mode.

PS. I post this to the newsgroup as well.
    But I include a copy to your mail as you might
    have forgotten about this issue since there was no
    replies for some time. Again, I didn't see the
    post at the newsgroup. If others did, they didn't
    respond (or I didn't see those posts either).
    This post they will see and possibly reply to, so
    even tho you read this as a personal mail be sure
    to check the newsgroup/mailing list as well.

-- 
underground experts united
http://user.it.uu.se/~embe8573




reply via email to

[Prev in Thread] Current Thread [Next in Thread]