github-linguist / github-linguist/linguist

Add language: Crisp (.crp / .crpi)

Open
#8,153 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.