Re: Code folding and wrapping using the input->code method?
- To: mathgroup at smc.vnet.net
- Subject: [mg104053] Re: Code folding and wrapping using the input->code method?
- From: telefunkenvf14 <rgorka at gmail.com>
- Date: Sat, 17 Oct 2009 07:02:35 -0400 (EDT)
- References: <hb70a0$8rs$1@smc.vnet.net> <hb9k06$ni$1@smc.vnet.net>
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://scien= 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 does= n't > > show any indentation nor does any automatic line breaks when scaling= 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 any = 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