comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: IDLWAVE 4.7/Tutorial
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: IDLWAVE 4.7/Tutorial [message #22782 is a reply to message #22778] Mon, 11 December 2000 06:29 Go to previous messageGo to previous message
Jack Saba is currently offline  Jack Saba
Messages: 30
Registered: January 1996
Member
Thanks, JD.

The section with the <M>, <B>, ..., clarifies the four variables used to control
positioning very nicely. And I can get almost everything I want with them.

However, it doesn't look like it is possible to use the continuation indentation
scheme I prefer. I usually want the first nonblank character in the second line
to line up with the beginning of the second word in the preceding line. Using
your example, the code layout would be

> pro foo
> ThisPro, a
> for i=1,10 do begin
> print, 'yay' + $
> AnotherVar
> endfor
> end

That's what would happen in text mode (for me, using NTEmacs in W98) if I hit 2
tabs at the start of the "AnotherVar" line. If I can set up
continuation-extra-indent to do this, it would probably be sufficient, but I
would still prefer to be able to tell idlwave mode to use the same tab control
that text mode does. Is there a way to do either of these?

Jack Saba
<jack.saba@gsfc.nasa.gov

>

JD Smith wrote:
>
> Jack Saba wrote:
...
>>
>> Basically, I want complete control of text layout in the buffer.
>>
>> 1. I enter
>>
>> FOR i=0,n
>> stuff
>> ENDFOR
>>
>> When I hit the <CR>, IDLWave reformats this by indenting the ENDFOR 3 spaces:
>>
>> FOR i=0,n
>> stuff
>> ENDFOR
>>
>> How do I prevent this reformatting?
>>
>> 2. How do I make tabs in IDLwave mode work the way they do in text mode?
>> Currently, the first tab moves the cursor under the first character on the last
>> line, but subsequent tabs fall into a black hole.
>
> Think of <TAB> as more of a code cleaner-upper than a tab insertion
> mechanism. Almost all programming modes do it this way. Once a line of
> code is cleaned, cleaning it again will make no change. You *really*
> shouldn't be lining code up by hand, it's far too tedious.
>
> If you would just like code to line up as in your first example, try:
>
> idlwave-block-indent 3 ; Indentation settings
> idlwave-end-offset -3
>
> This will line the "ENDFOR" up with the "FOR".
>
> Here's a little pictogram to help with the indents:
>
> pro foo
> <M>ThisPro, a
> <M>for i=1,10 do begin
> <M><B>print, 'yay' + $
> <M><B><C>AnotherVar
> <M><B><E>endfor
> end
>
> <M> = Main block indent
> <B> = Block indent
> <C> = Continuation extra indent
> <E> = End offset
>
> in particular: <M>=3, <B>=3, <C>=1, <E>=-3 would produce:
>
> pro foo
> ThisPro, a
> for i=1,10 do begin
> print, 'yay' + $
> AnotherVar
> endfor
> end
>
> see how <E> cancels <B> in the endfor line? Pretty simple. Your end
> offset is leaving things hanging.
>
> <M>=0, <B>=5, <C>=3, <E>=-3 would make it:
>
> pro foo
> ThisPro, a
> for i=1,10 do begin
> print, 'yay' + $
> AnotherVar
> endfor
> end
>
> Oooh, ugly. But any degree of ugliness is tolerated.
>
> Currently, <RET> indents the line after inserting the newline. If you
> would prefer "<RET>" not to indent the line for you, you can simply set:
>
> (local-set-key "\r" 'newline)
>
> in your idlwave-mode-hook. But I can't see why anyone would really want
> this... you'll just end up hitting <TAB> after <RET> everytime. But
> give it a try if you like.
>
> If you don't want <TAB> to behave specially at all (by the way, you can
> always use C-<TAB> to get a "real" tab in any case), you can simply:
>
> (local-set-key "\t" 'idlwave-hard-tab)
>
> but this is getting really silly. The point of this indentation is to
> pick a style you like, and let IDLWAVE use it everywhere. It makes your
> code so much more maintainable. It would be nice if we could all agree
> on a code indentation scheme and commenting style, but *at least* a
> personally enforced standard is necessary.
>
> Also, if you ever find that you don't like what your customizations have
> done, disable them. Carsten has worked hard to make the default
> settings very useable.
>
> JD
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Zooming in Object Graphics
Next Topic: IDLWAVE 4.7/Tutorial

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 03:20:31 PDT 2025

Total time taken to generate the page: 0.40338 seconds