No subject

From: ()
Date: Sat Mar 24 01:50:51 EDT 2012

indentation rules, we need to use the default settings of DrRacket=92s
indentation for this rule to make sense."

Maybe a special submodule like drracket-indentation with declarations like:
(module+ drracket-indentation
  (like-lambda my-lambda my-function ....)
  (like-begin my-begin ....)
  )
could be useful for user-specific indentation.

As a submodule, Racket can read&load it only at appropriate moments.
When indenting the file, DrRacket could first load the drracket-indentation
module of the file to know how to indent it.

One could then create a whole language with its own indentation rules.
It would also be easier to add good indentations for for/fold and others.

* Graphical syntax

"When we figure out how to save such files in an editor-compatible way, we
may relax this constraint."

Maybe the graphical job should be done by DrRacket only, and the file
itself should remain textual.
For example, special forms can be turned into graphics by DrRacket when
reading the file:
You write:
(image "balloon.jpg")
and DrRacket turns this into the image (if the option is turned on
somewhere in the preferences).
Of course, the s-exp should still be editable, for example with a
contextual menu that proposes "Back to s-exp" or "Turn me into graphical
form".

Or even surround it with a form like (drracket-show-image (image
"balloon.jpg") 48 48) for better rendering (that form obviously expands
into (image "balloon.jpg") for Racket).


Same for code folding, 2 options:
- either surround s-exps with a (drracket-fold ....) form to inform
DrRacket to fold the s-exp, and Racket to just do what's inside the form,
(but that "pollutes" the file for external editors, though an `unfold-file'
function should not be too difficult to do)
- or do not save folding into the file (loading a file displays it
unfolded, then it can be folded as desired). This might be problematic with
DrSync though, unless the file is not reverted if it has not changed.


But I agree all this would require some work, certainly.

Laurent

--047d7b15a811138e3304bf9626d3
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi,<br><br>Reading the style guide for Racket, I came up with a few debatab=
le suggestions.<br>( <a href=3D"http://www.ccs.neu.edu/home/matthias/Style/=
style/Textual_Matters.html">http://www.ccs.neu.edu/home/matthias/Style/styl=
e/Textual_Matters.html</a> )<br>

<br>Apologies if this has already been longly debated.<br><br>* Indentation=
: adding new indentations constructs to DrRacket<br><br>From the guide: &qu=
ot;Caveat 1: Until language specifications come with fixed indentation
rules, we need to use the <span style=3D"font-style:italic">default</span> =
settings of DrRacket=92s indentation
for this rule to make sense.&quot;<br><br>Maybe a special submodule like dr=
racket-indentation with declarations like:<br>(module+ drracket-indentation=
<br>=A0 (like-lambda my-lambda my-function ....)<br>=A0 (like-begin my-begi=
n ....)<br>

=A0 )<br>could be useful for user-specific indentation.<br><br>As a submodu=
le, Racket can read&amp;load it only at appropriate moments.<br>When indent=
ing the file, DrRacket could first load the drracket-indentation module of =
the file to know how to indent it.<br>

<br>One could then create a whole language with its own indentation rules.<=
br>It would also be easier to add good indentations for for/fold and others=
.<br><br>* Graphical syntax<br><br>&quot;When we figure out how to save suc=
h files in an editor-compatible way, we
may relax this constraint.&quot;<br><br>Maybe the graphical job should be d=
one by DrRacket only, and the file itself should remain textual.<br>For exa=
mple, special forms can be turned into graphics by DrRacket when reading th=
e file:<br>

You write:<br>(image &quot;balloon.jpg&quot;)<br>and DrRacket turns this in=
to the image (if the option is turned on somewhere in the preferences).<br>=
Of course, the s-exp should still be editable, for example with a contextua=
l menu that proposes &quot;Back to s-exp&quot; or &quot;Turn me into graphi=
cal form&quot;.<br>

<br>Or even surround it with a form like (drracket-show-image (image &quot;=
balloon.jpg&quot;) 48 48) for better rendering (that form obviously expands=
 into (image &quot;balloon.jpg&quot;) for Racket).<br><br><br>Same for code=
 folding, 2 options:<br>

- either surround s-exps with a (drracket-fold ....) form to inform DrRacke=
t to fold the s-exp, and Racket to just do what&#39;s inside the form, (but=
 that &quot;pollutes&quot; the file for external editors, though an `unfold=
-file&#39; function should not be too difficult to do)<br>

- or do not save folding into the file (loading a file displays it unfolded=
, then it can be folded as desired). This might be problematic with DrSync =
though, unless the file is not reverted if it has not changed.<br><br>
<br>
But I agree all this would require some work, certainly.<br><br>Laurent<br>

--047d7b15a811138e3304bf9626d3--

Posted on the dev mailing list.