diff --git a/package-lock.json b/package-lock.json index 360d02a39..8acd95542 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "async": "^3.2.5", "bits-ui": "^0.19.7", "codemirror": "^6.0.1", + "codemirror-lang-elixir": "^4.0.0", "codemirror-lang-hcl": "^0.0.0-beta.2", "crc-32": "^1.2.2", "dayjs": "^1.11.10", @@ -4625,6 +4626,15 @@ "@codemirror/view": "^6.0.0" } }, + "node_modules/codemirror-lang-elixir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/codemirror-lang-elixir/-/codemirror-lang-elixir-4.0.0.tgz", + "integrity": "sha512-mzFesxo/t6KOxwnkqVd34R/q7yk+sMtHh6vUKGAvjwHmpL7bERHB+vQAsmU/nqrndkwVeJEHWGw/z/ybfdiudA==", + "dependencies": { + "@codemirror/language": "^6.0.0", + "lezer-elixir": "^1.0.0" + } + }, "node_modules/codemirror-lang-hcl": { "version": "0.0.0-beta.2", "resolved": "https://registry.npmjs.org/codemirror-lang-hcl/-/codemirror-lang-hcl-0.0.0-beta.2.tgz", @@ -7611,6 +7621,15 @@ "node": ">= 0.8.0" } }, + "node_modules/lezer-elixir": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lezer-elixir/-/lezer-elixir-1.1.2.tgz", + "integrity": "sha512-K3yPMJcNhqCL6ugr5NkgOC1g37rcOM38XZezO9lBXy0LwWFd8zdWXfmRbY829vZVk0OGCQoI02yDWp9FF2OWZA==", + "dependencies": { + "@lezer/highlight": "^1.2.0", + "@lezer/lr": "^1.3.0" + } + }, "node_modules/lightningcss": { "version": "1.29.1", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", diff --git a/package.json b/package.json index f670644df..0339e5934 100644 --- a/package.json +++ b/package.json @@ -73,6 +73,7 @@ "bits-ui": "^0.19.7", "codemirror": "^6.0.1", "codemirror-lang-hcl": "^0.0.0-beta.2", + "codemirror-lang-elixir": "^4.0.0", "crc-32": "^1.2.2", "dayjs": "^1.11.10", "dompurify": "^3.1.6", diff --git a/src/lib/components/common/CodeEditor.svelte b/src/lib/components/common/CodeEditor.svelte index 82ff13937..2c10ed13c 100644 --- a/src/lib/components/common/CodeEditor.svelte +++ b/src/lib/components/common/CodeEditor.svelte @@ -98,6 +98,16 @@ } }) ); + languages.push( + LanguageDescription.of({ + name: 'Elixir', + extensions: ['ex', 'exs'], + load() { + return import('codemirror-lang-elixir').then((m) => m.elixir()); + } + }) + ); + const getLang = async () => { const language = languages.find((l) => l.alias.includes(lang)); return await language?.load();