github-linguist / github-linguist/linguist
Add language: Crisp (.crp / .crpi)
- Dominant language
- Ruby
- Stars
- 13.7k
- Forks
- 5.4k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 17
Description
## Language name
Crisp
## URL of example repository
- Language / compiler: https://github.com/jose-compu/crisp
- In-the-wild scientific crate (many `.crp` sources): https://github.com/jose-compu/combustion-sim
- Site: https://crisp-lang.org/
## URL of syntax highlighting grammar
https://github.com/jose-compu/crisp/blob/main/editors/vscode-crisp/syntaxes/crisp.tmLanguage.json
- `scopeName`: `source.crisp`
- License: MIT OR Apache-2.0 (`editors/vscode-crisp/package.json`)
- VS Code extension in the same tree: `editors/vscode-crisp`
## Most popular extensions
- `.crp` — Crisp source modules (primary)
- `.crpi` — `extern rust` sidecar signatures
- Manifest: `crisp.toml` (not a source extension)
**Collision:** `.crp` is already used on GitHub by unrelated data (crop-model parameters, NLP corpora). A naive `extensions: [".crp"]` mapping would misclassify those files. A heuristic (or a distinct primary extension) is required. Distinct Crisp markers include `extern rust`, `pub main()`, `crisp.toml` in the same repo, and `--` line comments with `:=` bindings.
## Detected language
None. GitHub Linguist does not list Crisp, so `.crp` files are ignored in language statistics. Repositories such as [combustion-sim](https://github.com/jose-compu/combustion-sim) therefore show only **Rust** (a `kernels/` sidecar) and **Makefile**, even though the PDE solver is written in Crisp.
## Suggested `languages.yml` (no `language_id`)
```yaml
Crisp:
type: programming
color: "#0E8A16"
extensions:
- ".crp"
- ".crpi"
tm_scope: source.crisp
ace_mode: text
aliases:
- crisp-lang
```
## Usage (honest)
This is a young language (Crisp 1.8.x). It does **not** yet meet the 2 000-files-per-extension bar in CONTRIBUTING.md. Indexed hits (approximate, GitHub code search):
- `filename:crisp.toml` — on the order of 10²
- `extension:crp "pub main()"` — on the order of 10²
- Raw `extension:crp` is ~20 000, dominated by **non-Crisp** crop/corpus files
Please consider the **Pending Popularity** track rather than closing as a hobby-language PR. Happy to supply a heuristic and MIT-licensed samples from combustion-sim (`src/core/field1d.crp`, `src/experiments/e06_slot.crp`) when you are ready for a PR.
Related compiler issue (usage / `.crp` collision): will link from jose-compu/crisp after this is filed.
Contributor guide
Research direction
Start by reading languages.yml and CONTRIBUTING.md, then inspect how Linguist handles extension collisions and pending-popularity languages. Use the linked Crisp grammar and sample repositories as references. Done means Crisp is represented with its grammar scope and extensions without broadly misclassifying unrelated .crp files, subject to the project's acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100