Primitives for creating/modifying/editing code without opening a model instance
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 20
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
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:
-
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 thenls: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: -
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?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing ls:create-* commands and ls:close behavior described in the issue. Clarify whether the goal is a primitive that creates and discards a child model, an editable default model flow, or both; done would require an agreed command design and handling for existing, missing, and newly saved models.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100