Skip to content

feat(code-mirror): add Elixir, Zig, and Gleam languages support to CodeMirror#3728

Open
VasylMarchuk wants to merge 6 commits intomainfrom
feat/add-more-codemirror-langs
Open

feat(code-mirror): add Elixir, Zig, and Gleam languages support to CodeMirror#3728
VasylMarchuk wants to merge 6 commits intomainfrom
feat/add-more-codemirror-langs

Conversation

@VasylMarchuk
Copy link
Collaborator

@VasylMarchuk VasylMarchuk commented Feb 8, 2026

Closes #3715
Closes #3708
Closes #3716

Brief

Added support for Elixir, Zig, and Gleam languages in CodeMirror.

Details

More details

  • Removed the explicit import of yaml language from the CodeMirror component, as it is already included in @codemirror/language-data package we use for language metadata, and the default on-demand await import implementation.
  • Instead, in testing environments, squash together all codemirror and shiki chunks to greatly reduce the amount of chunks generated by webpack — and thus fix occasional chunk loading errors that occur when running tests in concurrent browsers with ember exam.

Demo

Checklist:

  • I've thoroughly self-reviewed my changes
  • I've added tests for my changes, unless they affect admin-only areas (or are otherwise not worth testing)
  • I've verified any visual changes using Percy (add a commit with [percy] in the message to trigger)

@VasylMarchuk VasylMarchuk self-assigned this Feb 8, 2026
@VasylMarchuk VasylMarchuk added the enhancement New feature or request label Feb 8, 2026
@github-actions
Copy link

github-actions bot commented Feb 8, 2026

Test Results

  1 files  ±0    1 suites  ±0   6m 52s ⏱️ - 3m 22s
707 tests ±0  652 ✅ ±0  55 💤 ±0  0 ❌ ±0 
722 runs  ±0  667 ✅ ±0  55 💤 ±0  0 ❌ ±0 

Results for commit e1e0fb6. ± Comparison against base commit 7f5e6dd.

♻️ This comment has been updated with latest results.

@codecov
Copy link

codecov bot commented Feb 8, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

@codecov
Copy link

codecov bot commented Feb 8, 2026

Bundle Report

Changes will increase total bundle size by 214.46kB (0.55%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
client-array-push 39.25MB 214.46kB (0.55%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: client-array-push

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/chunk.*.js 19 bytes 3.92kB 0.49%
assets/chunk.*.js 16 bytes 3.9kB 0.41%
assets/chunk.*.js -294 bytes 58.59kB -0.5%
assets/chunk.*.js 29 bytes 3.89kB 0.75%
assets/chunk.*.js 4.35kB 3.42MB 0.13%
assets/chunk.*.js 44 bytes 3.86kB 1.15%
assets/chunk.*.js -11.16kB 305.52kB -3.53%
assets/chunk.*.js 2.69kB 58.88kB 4.79%
assets/chunk.*.js 10.75kB 147.05kB 7.89% ⚠️
assets/chunk.*.js 8.75kB 56.19kB 18.44% ⚠️
assets/chunk.*.js -78 bytes 11.6kB -0.67%
assets/chunk.*.js 263 bytes 3.81kB 7.41% ⚠️
assets/chunk.*.js 30.65kB 136.3kB 29.01% ⚠️
assets/chunk.*.js 5.62kB 47.44kB 13.44% ⚠️
assets/chunk.*.js 112 bytes 41.12kB 0.27%
assets/chunk.*.js 7.9kB 105.65kB 8.08% ⚠️
assets/chunk.*.js -2.26kB 11.68kB -16.21%
assets/chunk.*.js 14.22kB 41.82kB 51.51% ⚠️
assets/chunk.*.js 22.76kB 97.75kB 30.35% ⚠️
assets/chunk.*.js 1.63kB 27.6kB 6.28% ⚠️
assets/chunk.*.js 181 bytes 3.55kB 5.37% ⚠️
assets/chunk.*.js 4.7kB 74.99kB 6.68% ⚠️
assets/chunk.*.js 66.05kB 70.29kB 1556.63% ⚠️
assets/chunk.*.js 12.61kB 13.94kB 949.55% ⚠️
assets/chunk.*.js (New) 3.37kB 3.37kB 100.0% 🚀
assets/chunk.*.js (New) 1.33kB 1.33kB 100.0% 🚀
assets/chunk.*.js (New) 25.97kB 25.97kB 100.0% 🚀
assets/chunk.*.js (New) 4.24kB 4.24kB 100.0% 🚀

Files in assets/chunk.*.js:

  • ./utils/code-mirror-documents.ts → Total Size: 21.84kB

Integrate support for Elixir language in the code editor by adding the codemirror-lang-elixir package. Update the language loader to include Elixir, allowing for syntax highlighting and language features. Introduce a new example document showcasing Elixir code with highlighted and collapsed ranges.
Integrate support for Zig language in the code editor by adding the codemirror-lang-zig package. Update the language loader to include Zig, allowing for syntax highlighting and language features. Introduce a new example document showcasing Zig code with highlighted and collapsed ranges.
@VasylMarchuk VasylMarchuk force-pushed the feat/add-more-codemirror-langs branch from c329348 to 567f2df Compare February 14, 2026 12:45
@VasylMarchuk VasylMarchuk changed the title feat(code-mirror): add Elixir, Gleam, and Zig languages support to CodeMirror feat(code-mirror): add Elixir and Zig languages support to CodeMirror Feb 14, 2026
Integrate support for Gleam language in the code editor by adding the @exercism/codemirror-lang-gleam package. Update the language loader to include Gleam, allowing for syntax highlighting and language features. Introduce a new example document showcasing Gleam code with highlighted and collapsed ranges.
@VasylMarchuk VasylMarchuk changed the title feat(code-mirror): add Elixir and Zig languages support to CodeMirror feat(code-mirror): add Elixir, Zig, and Gleam languages support to CodeMirror Feb 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Gleam syntax highlighting Add Elixir syntax highlighting Add zig syntax highlighting

1 participant