posit-dev / posit-dev/air

Feature request: DSL support?

Open
#524 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
446
Forks
32
Avg merge
16h 48m
Merged PRs (30d)
1

Description

The nlmixr2 ecosystem of packages has a domain-specific language where a few items are intentionally different than typical R programming. Specifically, some lines should retain semicolons:

ini({
 model_parameter <- 1; label("This is my model parameter!")
})

And, the d/dt(x) operator is used to define differential equations, so it should remain together within the model:

model({
  d/dt(air_is_great) <- 100
})

These are always within a function, so it's easy to detect when this would apply vs when it would not. Would there be any appetite to include DSL functionality that could live within a package?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing how the formatter handles function bodies and the R constructs shown in the issue. Clarify whether support should preserve semicolons in ini() and keep d/dt(...) expressions together in model(), while leaving ordinary R formatting unchanged. Done should be defined with examples or tests for these nlmixr2 cases.

Written by the indexing model from the issue text.

Assessment

Tech stack
r
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.