Add syntax highlighting to own command
- To: mathgroup at smc.vnet.net
- Subject: [mg101539] Add syntax highlighting to own command
- From: earthnut at web.de (Bastian Erdnuess)
- Date: Thu, 9 Jul 2009 02:00:14 -0400 (EDT)
I was missing a scoping construct like 'With' but where the local variables get assigned linearly. E. g. In[1] := LinearWith[ { a = "Hi, ", b = a <> "there!" }, Print[ b ] ] Out[1] = "Hi, there!" . I'm fairly new to Mathematica, but I know some Lisp, and somehow I got it. I called my new construct Let and defined it as: Let[ vars_, expr_ ] := If[ Length[ Unevaluated[ vars ] ] == 1, With[ vars, expr ], (* else *) Unevaluated[ vars ] /. { a_, b__ } :> With[ { a }, Let[ { b }, expr ] ] ] SetAttributes[ Let, HoldAll ] It seems to work fine so far. Now, I would like to have this construct load always when I start Mathematica and I don't want to get it cleared when I use 'Clear["Global`*"]'. So I put it in the System` context and also added the attribute 'Protected'. I wrote all in a file Let.m and now, I wonder where to put it that it gets read automatically at each startup of Mathematica. However, my first question: Is it a bad idea to add things to the System` context? And if not, where to put my file? And if, what would be better? Second, my main question: Is it somehow possible to add this nice syntax highlighting to the Let construct like with the With construct, where the local variables appear in green? Third: Can I somehow add a help page? I have already the Let::usage. And last: Does anybody know how to make the construct better? Is there something like syntax transformation rules in Mathematica? Thank you for your answers, Bastian
- Follow-Ups:
- Re: Add syntax highlighting to own command
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Add syntax highlighting to own command
- From: Leonid Shifrin <lshifr@gmail.com>
- Re: Add syntax highlighting to own command