Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2009

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Code folding and wrapping using the input->code method?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg104094] Re: Code folding and wrapping using the input->code method?
  • From: David Reiss <dbreiss at gmail.com>
  • Date: Mon, 19 Oct 2009 07:10:49 -0400 (EDT)
  • References: <hb70a0$8rs$1@smc.vnet.net> <hb9k06$ni$1@smc.vnet.net>

On Oct 17, 7:03 am, telefunkenvf14 <rgo... at gmail.com> wrote:
> On Oct 16, 6:04 am, David Reiss <dbre... at gmail.com> wrote:
>
>
>
> > Take a look at the following MathGroup posting of mine that addresses
> > this:
>
> >http://groups.google.com/group/comp.soft-sys.math.mathematica/browse_...
>
> > I also reproduce that posting below....
>
> > Best,
>
> > Davidhttp://scientificarts.com/worklife
>
> > __________________________________________
> > Original posting:
> > __________________________________________
>
> > There are several points to make on this.  The first is that,
> > generally you want to create your Mathematica cod within a
> > Mathematica notebook (unless you are using Workbench) and then set
> > that notebook up so that it's Input Cells or Code cells are
> > Initialization cells.  Then the notebook will save them into a
> > corresponding .m file when the notebook is saved (a dialog will ask
> > you this the first time you save it after you have put initialization
> > cells in it).
> > As for indentation, Code cells will not (by their stylesheet design)
> > auto indent.  The can be changed at the style sheet level.
> > As for working with .m files directly.  They do not retain any
> > stylsheet information when they are saved.  However styles can be
> > imposed on them while they are open.
> > Cells with code in .m files make use of the Core.nb stylesheet's Code
> > cellstyle.  So if you modify cells of this style in the .m file they
> > will take on those modifications for the session that the .m file is
> > open.
> > If nb is the NotebookObject for the .m file in question then the
> > following will make it behave in a way that you are desiring,
> > modifying the cells with code in them.  The code comes fromhttp://sci=
en=
>
> tificarts.com/worklifewhere it is used in one of the
>
>
>
>
>
> > palettes for exactly the purpose you are wanting:  I needed the same
> > thing and wrote it into thehttp://scientificarts.com/worklife
> > package for just this reason.
> > ModifyCodeStyle[nb_NotebookObject, Selection] :=
> >   Module[{},
> >    NotebookFind[nb, "Code", All, CellStyle, AutoScroll -> False];
> >    SetOptions[NotebookSelection[nb],
> >     PageWidth -> WindowWidth,
> >     AutoIndent -> Automatic,
> >     AutoSpacing -> True,
> >     LineBreakWithin -> Automatic,
> >     LineIndent -> 1,
> >     LinebreakAdjustments -> {0.85, 2, 10, 0, 1}]
> >    ];
> > And here is a different version which acts on the style of Code cells
> > rather than on the cells directly:
> > ModifyCodeStyle[nb_NotebookObject, Notebook] :=
> >    Module[{styledefs, editable},
> >     editable = Editable /. Options[nb, Editable];
> >     SetOptions[nb, Editable -> True];
> >     styledefs = StyleDefinitions /. Options[nb, StyleDefinitions]=
;
> >     Switch[Head[styledefs],
> >      Notebook,
> >      styledefs = Notebook[
> >        {
> >         First@First[styledefs],
> >         Cell[StyleData["Code"],
> >          PageWidth -> WindowWidth,
> >          AutoIndent -> Automatic,
> >          AutoSpacing -> True,
> >          LineBreakWithin -> Automatic,
> >          LineIndent -> 1,
> >          LinebreakAdjustments -> {0.85, 2, 10, 0, 1}],
> >         Rest@First[styledefs]
> >         },
> >        Sequence @@ Rest[List @@ styledefs]
> >        ],
> >      String | FileName | FrontEnd`FileName,
> >      styledefs =
> >       Notebook[{Cell[StyleData[StyleDefinitions -> styledefs]],
> >         Cell[StyleData["Code"],
> >          PageWidth -> WindowWidth,
> >          AutoIndent -> Automatic,
> >          AutoSpacing -> True,
> >          LineBreakWithin -> Automatic,
> >          LineIndent -> 1,
> >          LinebreakAdjustments -> {0.85, 2, 10, 0, 1}]},
> >        StyleDefinitions -> "PrivateStylesheetFormatting.nb"]
> >      ];
> >     SetOptions[nb, StyleDefinitions -> styledefs];
> >     SetOptions[nb, Editable -> editable]
> >     ];
> > I hope this helps...
> > --Davidhttp://scientificarts.com/worklife
> > On Aug 21, 4:42 am, Benjamin Hell <h... at exoneon.de> wrote:
>
> > >  Hi,
> > >  this is a real beginner question for packages in mathematica. When=
 I
> > >  view a package (.m) file in mathematica, the mathematica editor do=
es=
> n't
> > >  show any indentation nor does any automatic line breaks when scali=
ng=
>  the
> > >  window. So whereas my code can be read quite well in a standard
> > >  mathematica notebook, it looks ugly in a package file. Is there an=
y =
> way
> > >  to setup some viewing options to change that behaviour?
> > >  Thanks in advance,
> > >  Benjamin
>
> > --
> > <><><><><><><><><>><><><>><><><>
> >     David Reiss, Ph.D;   Scientific Arts, LLC      .
> >    http://www.scientificarts.com
> > <><><><><><><><><>><><><>><><><>
> > This message and any attachments, may contain confidential and/or
> > legally privileged information.  If you are not the intended
> > recipient of the message by the original sender, please destroy it.
> > Message and attachments Copyright (c) 2009, all rights reserved.
>
> > On Oct 15, 7:16 am, telefunkenvf14 <rgo... at gmail.com> wrote:
>
> > > Does anyone know how to make Mathematica both fold and wrap code
> > > input?
>
> > > I really like using the code input option (because it automatically
> > > generates an autosave package for you, and I like the way it sets the
> > > code off from the rest of your work in a notebook), but the lack of
> > > folding and wrapping are driving me NUTS!
>
> > > -RG
>
> I'd give you a hug if I could reach ya! Thanks.
>
> I nosed around your website as well and will keep your consultation
> services in mind.
>
> Are you interested in developing additional packages? I have some
> ideas, mainly related to search and auto-linking/cross-linking and
> index generation, and am curious about the economics of working on
> such a project. (I'm an economist)
>
> -RG



Thanks!

--David


  • Prev by Date: Re: Text cell formating blues. LineBreakWithin, PageWidth, WordWrapping
  • Next by Date: Re: (1234*(2/3)^(Log[1234]/Log[3])) === (1234^(Log[2]/Log[3])) should be?
  • Previous by thread: Re: Code folding and wrapping using the input->code method?
  • Next by thread: launch kernel for another notebook within a notebook