NetLogo / LevelSpace

This is the LevelSpace extension repository. LevelSpace allows you to run NetLogo models |: from inside NetLogo models :|
Other
19 stars 8 forks source link

Primitives for creating/modifying/editing code without opening a model instance #128

Open arthurhjorth opened 6 years ago

arthurhjorth commented 6 years ago

Currently we can only edit child model code if we use either of the ls:create- commands. That's super helpful if people are working with child model code. However, there are two ways in which I'd really like to see this extended:

  1. I would really like to see a small change where we have a command that calls this code but without having to open a model in a LevelSpace system. It could be as simple as just creating a child model and discarding it again. Yes, I know it seems a bit silly to have a prim that just calls ls:create-<> and then ls:close, but it does feel like a different function to me. Also, it would be possible to integrate with my next idea for an extension:

  2. I'd like it to also be able to open a savable version of the default model, making it possible to write LevelSpace models with just one instance of NetLogo open at a time.

I imagine the usecase something like:

User calls the prim. If model already exists, LS calls ls:create, opens an editable tab with the model code, then ls:close. If not, LS informs the user that the model does not exist and prompts whether to create a new model. If yes, LS opens the default model, and then forces the user to save immediately in the current working directory since, unlike regular NetLogo, LevelSpace needs the model to exist in a saved form in order to load it as a child model. If no, LS exits out.

What do you think, @qiemem ?

Presumptuously, what should we name it?