Skip to content

Commit 62d4e8e

Browse files
more syntax highlighting support
1 parent bcdee82 commit 62d4e8e

File tree

3 files changed

+171
-3
lines changed

3 files changed

+171
-3
lines changed

package.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,18 @@
1313
},
1414
"dependencies": {
1515
"@codemirror/commands": "^6.6.0",
16+
"@codemirror/lang-cpp": "^6.0.2",
17+
"@codemirror/lang-css": "^6.3.0",
18+
"@codemirror/lang-go": "^6.0.1",
19+
"@codemirror/lang-html": "^6.4.9",
20+
"@codemirror/lang-java": "^6.0.1",
1621
"@codemirror/lang-javascript": "^6.2.2",
22+
"@codemirror/lang-json": "^6.0.1",
1723
"@codemirror/lang-markdown": "^6.2.5",
24+
"@codemirror/lang-php": "^6.0.1",
1825
"@codemirror/lang-python": "^6.1.6",
26+
"@codemirror/lang-rust": "^6.0.1",
27+
"@codemirror/lang-sql": "^6.7.1",
1928
"@codemirror/search": "^6.5.6",
2029
"@codemirror/state": "^6.4.1",
2130
"@codemirror/view": "^6.33.0",
@@ -27,6 +36,7 @@
2736
"@radix-ui/react-scroll-area": "^1.1.0",
2837
"@radix-ui/react-separator": "^1.1.0",
2938
"@radix-ui/react-slot": "^1.1.0",
39+
"@replit/codemirror-lang-csharp": "^6.2.0",
3040
"@replit/codemirror-vim": "^6.2.1",
3141
"@tanstack/react-query": "^5.53.3",
3242
"@tanstack/react-table": "^8.20.5",

src/hooks/useSyntaxHighlightingExtension.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,45 @@ import { useExtensionWithDependency } from "./useExtensionWithDependency";
55
import { javascript } from "@codemirror/lang-javascript";
66
import { python } from "@codemirror/lang-python";
77
import { markdown } from "@codemirror/lang-markdown";
8+
import { cpp } from "@codemirror/lang-cpp";
9+
import { csharp } from "@replit/codemirror-lang-csharp";
10+
import { json } from "@codemirror/lang-json";
11+
import { java } from "@codemirror/lang-java";
12+
import { rust } from "@codemirror/lang-rust";
13+
import { go } from "@codemirror/lang-go";
14+
import { sql } from "@codemirror/lang-sql";
15+
import { php } from "@codemirror/lang-php";
16+
import { html } from "@codemirror/lang-html";
17+
import { css } from "@codemirror/lang-css";
18+
819

920
export const useSyntaxHighlightingExtension = (language: string, view: EditorView | undefined) => {
1021
const extension = useExtensionWithDependency(
1122
view ?? null,
1223
() => {
1324
switch (language.toLowerCase()) {
25+
case "c":
26+
case "c++":
27+
return cpp();
28+
case "c#":
29+
return csharp();
30+
case "json":
31+
return json();
32+
case "java":
33+
return java();
34+
case "rust":
35+
return rust();
36+
case "go":
37+
return go();
38+
case "sql":
39+
return sql();
40+
case "php":
41+
return php();
42+
case "html":
43+
return html();
44+
case "css":
45+
return css();
46+
case "jsx":
1447
case "tsx":
1548
case "typescript":
1649
case "javascript":

yarn.lock

Lines changed: 128 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,15 @@
4444
"@codemirror/view" "^6.27.0"
4545
"@lezer/common" "^1.1.0"
4646

47-
"@codemirror/lang-css@^6.0.0":
47+
"@codemirror/lang-cpp@^6.0.2":
48+
version "6.0.2"
49+
resolved "https://registry.yarnpkg.com/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz#076c98340c3beabde016d7d83e08eebe17254ef9"
50+
integrity sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==
51+
dependencies:
52+
"@codemirror/language" "^6.0.0"
53+
"@lezer/cpp" "^1.0.0"
54+
55+
"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.3.0":
4856
version "6.3.0"
4957
resolved "https://registry.yarnpkg.com/@codemirror/lang-css/-/lang-css-6.3.0.tgz#607628559f2471b385c6070ec795072a55cffc0b"
5058
integrity sha512-CyR4rUNG9OYcXDZwMPvJdtb6PHbBDKUc/6Na2BIwZ6dKab1JQqKa4di+RNRY9Myn7JB81vayKwJeQ7jEdmNVDA==
@@ -55,7 +63,18 @@
5563
"@lezer/common" "^1.0.2"
5664
"@lezer/css" "^1.1.7"
5765

58-
"@codemirror/lang-html@^6.0.0":
66+
"@codemirror/lang-go@^6.0.1":
67+
version "6.0.1"
68+
resolved "https://registry.yarnpkg.com/@codemirror/lang-go/-/lang-go-6.0.1.tgz#598222c90f56eae28d11069c612ca64d0306b057"
69+
integrity sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==
70+
dependencies:
71+
"@codemirror/autocomplete" "^6.0.0"
72+
"@codemirror/language" "^6.6.0"
73+
"@codemirror/state" "^6.0.0"
74+
"@lezer/common" "^1.0.0"
75+
"@lezer/go" "^1.0.0"
76+
77+
"@codemirror/lang-html@^6.0.0", "@codemirror/lang-html@^6.4.9":
5978
version "6.4.9"
6079
resolved "https://registry.yarnpkg.com/@codemirror/lang-html/-/lang-html-6.4.9.tgz#d586f2cc9c341391ae07d1d7c545990dfa069727"
6180
integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==
@@ -70,6 +89,14 @@
7089
"@lezer/css" "^1.1.0"
7190
"@lezer/html" "^1.3.0"
7291

92+
"@codemirror/lang-java@^6.0.1":
93+
version "6.0.1"
94+
resolved "https://registry.yarnpkg.com/@codemirror/lang-java/-/lang-java-6.0.1.tgz#03bd06334da7c8feb9dff6db01ac6d85bd2e48bb"
95+
integrity sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==
96+
dependencies:
97+
"@codemirror/language" "^6.0.0"
98+
"@lezer/java" "^1.0.0"
99+
73100
"@codemirror/lang-javascript@^6.0.0", "@codemirror/lang-javascript@^6.2.2":
74101
version "6.2.2"
75102
resolved "https://registry.yarnpkg.com/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz#7141090b22994bef85bcc5608a3bc1257f2db2ad"
@@ -83,6 +110,14 @@
83110
"@lezer/common" "^1.0.0"
84111
"@lezer/javascript" "^1.0.0"
85112

113+
"@codemirror/lang-json@^6.0.1":
114+
version "6.0.1"
115+
resolved "https://registry.yarnpkg.com/@codemirror/lang-json/-/lang-json-6.0.1.tgz#0a0be701a5619c4b0f8991f9b5e95fe33f462330"
116+
integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==
117+
dependencies:
118+
"@codemirror/language" "^6.0.0"
119+
"@lezer/json" "^1.0.0"
120+
86121
"@codemirror/lang-markdown@^6.2.5":
87122
version "6.2.5"
88123
resolved "https://registry.yarnpkg.com/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz#451941bf743d3788e73598f1aedb71cbeb6f71ba"
@@ -96,6 +131,17 @@
96131
"@lezer/common" "^1.2.1"
97132
"@lezer/markdown" "^1.0.0"
98133

134+
"@codemirror/lang-php@^6.0.1":
135+
version "6.0.1"
136+
resolved "https://registry.yarnpkg.com/@codemirror/lang-php/-/lang-php-6.0.1.tgz#fa34cc75562178325861a5731f79bd621f57ffaa"
137+
integrity sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==
138+
dependencies:
139+
"@codemirror/lang-html" "^6.0.0"
140+
"@codemirror/language" "^6.0.0"
141+
"@codemirror/state" "^6.0.0"
142+
"@lezer/common" "^1.0.0"
143+
"@lezer/php" "^1.0.0"
144+
99145
"@codemirror/lang-python@^6.1.6":
100146
version "6.1.6"
101147
resolved "https://registry.yarnpkg.com/@codemirror/lang-python/-/lang-python-6.1.6.tgz#0c55e7e2dfa85b68be93b9692e5d3f76f284bbb2"
@@ -107,6 +153,26 @@
107153
"@lezer/common" "^1.2.1"
108154
"@lezer/python" "^1.1.4"
109155

156+
"@codemirror/lang-rust@^6.0.1":
157+
version "6.0.1"
158+
resolved "https://registry.yarnpkg.com/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz#d6829fc7baa39a15bcd174a41a9e0a1bf7cf6ba8"
159+
integrity sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==
160+
dependencies:
161+
"@codemirror/language" "^6.0.0"
162+
"@lezer/rust" "^1.0.0"
163+
164+
"@codemirror/lang-sql@^6.7.1":
165+
version "6.7.1"
166+
resolved "https://registry.yarnpkg.com/@codemirror/lang-sql/-/lang-sql-6.7.1.tgz#314211eb79fbba96b4dd0d24fa954be9803368ab"
167+
integrity sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==
168+
dependencies:
169+
"@codemirror/autocomplete" "^6.0.0"
170+
"@codemirror/language" "^6.0.0"
171+
"@codemirror/state" "^6.0.0"
172+
"@lezer/common" "^1.2.0"
173+
"@lezer/highlight" "^1.0.0"
174+
"@lezer/lr" "^1.0.0"
175+
110176
"@codemirror/language@^6.0.0", "@codemirror/language@^6.3.0", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0", "@codemirror/language@^6.8.0":
111177
version "6.10.2"
112178
resolved "https://registry.yarnpkg.com/@codemirror/language/-/language-6.10.2.tgz#4056dc219619627ffe995832eeb09cea6060be61"
@@ -413,6 +479,15 @@
413479
resolved "https://registry.yarnpkg.com/@lezer/common/-/common-1.2.1.tgz#198b278b7869668e1bebbe687586e12a42731049"
414480
integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==
415481

482+
"@lezer/cpp@^1.0.0":
483+
version "1.1.2"
484+
resolved "https://registry.yarnpkg.com/@lezer/cpp/-/cpp-1.1.2.tgz#1db93b09e011e8a7a08c347c9d5b7749971253bf"
485+
integrity sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==
486+
dependencies:
487+
"@lezer/common" "^1.2.0"
488+
"@lezer/highlight" "^1.0.0"
489+
"@lezer/lr" "^1.0.0"
490+
416491
"@lezer/css@^1.1.0", "@lezer/css@^1.1.7":
417492
version "1.1.9"
418493
resolved "https://registry.yarnpkg.com/@lezer/css/-/css-1.1.9.tgz#404563d361422c5a1fe917295f1527ee94845ed1"
@@ -422,6 +497,15 @@
422497
"@lezer/highlight" "^1.0.0"
423498
"@lezer/lr" "^1.0.0"
424499

500+
"@lezer/go@^1.0.0":
501+
version "1.0.0"
502+
resolved "https://registry.yarnpkg.com/@lezer/go/-/go-1.0.0.tgz#26cd2463f8583e630f52e714dca6d7420c5f7d7e"
503+
integrity sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==
504+
dependencies:
505+
"@lezer/common" "^1.2.0"
506+
"@lezer/highlight" "^1.0.0"
507+
"@lezer/lr" "^1.0.0"
508+
425509
"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3":
426510
version "1.2.1"
427511
resolved "https://registry.yarnpkg.com/@lezer/highlight/-/highlight-1.2.1.tgz#596fa8f9aeb58a608be0a563e960c373cbf23f8b"
@@ -438,6 +522,15 @@
438522
"@lezer/highlight" "^1.0.0"
439523
"@lezer/lr" "^1.0.0"
440524

525+
"@lezer/java@^1.0.0":
526+
version "1.1.2"
527+
resolved "https://registry.yarnpkg.com/@lezer/java/-/java-1.1.2.tgz#01a6ffefa9a692ac6cd492f8b924009edcb903d7"
528+
integrity sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==
529+
dependencies:
530+
"@lezer/common" "^1.2.0"
531+
"@lezer/highlight" "^1.0.0"
532+
"@lezer/lr" "^1.0.0"
533+
441534
"@lezer/javascript@^1.0.0":
442535
version "1.4.17"
443536
resolved "https://registry.yarnpkg.com/@lezer/javascript/-/javascript-1.4.17.tgz#8456e369f960c328b9e823342d0c72d704238c31"
@@ -447,7 +540,16 @@
447540
"@lezer/highlight" "^1.1.3"
448541
"@lezer/lr" "^1.3.0"
449542

450-
"@lezer/lr@^1.0.0", "@lezer/lr@^1.3.0":
543+
"@lezer/json@^1.0.0":
544+
version "1.0.2"
545+
resolved "https://registry.yarnpkg.com/@lezer/json/-/json-1.0.2.tgz#bdc849e174113e2d9a569a5e6fb1a27e2f703eaf"
546+
integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==
547+
dependencies:
548+
"@lezer/common" "^1.2.0"
549+
"@lezer/highlight" "^1.0.0"
550+
"@lezer/lr" "^1.0.0"
551+
552+
"@lezer/lr@^1.0.0", "@lezer/lr@^1.1.0", "@lezer/lr@^1.3.0":
451553
version "1.4.2"
452554
resolved "https://registry.yarnpkg.com/@lezer/lr/-/lr-1.4.2.tgz#931ea3dea8e9de84e90781001dae30dea9ff1727"
453555
integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==
@@ -462,6 +564,15 @@
462564
"@lezer/common" "^1.0.0"
463565
"@lezer/highlight" "^1.0.0"
464566

567+
"@lezer/php@^1.0.0":
568+
version "1.0.2"
569+
resolved "https://registry.yarnpkg.com/@lezer/php/-/php-1.0.2.tgz#7c291631fc1e7f7efe99977522bc48bdc732658a"
570+
integrity sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==
571+
dependencies:
572+
"@lezer/common" "^1.2.0"
573+
"@lezer/highlight" "^1.0.0"
574+
"@lezer/lr" "^1.1.0"
575+
465576
"@lezer/python@^1.1.4":
466577
version "1.1.14"
467578
resolved "https://registry.yarnpkg.com/@lezer/python/-/python-1.1.14.tgz#a0887086fb7645cd09ada38ed748ca1d968e6363"
@@ -471,6 +582,15 @@
471582
"@lezer/highlight" "^1.0.0"
472583
"@lezer/lr" "^1.0.0"
473584

585+
"@lezer/rust@^1.0.0":
586+
version "1.0.2"
587+
resolved "https://registry.yarnpkg.com/@lezer/rust/-/rust-1.0.2.tgz#cc9a75605d67182a0e799ac40b1965a61dcc6ef0"
588+
integrity sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==
589+
dependencies:
590+
"@lezer/common" "^1.2.0"
591+
"@lezer/highlight" "^1.0.0"
592+
"@lezer/lr" "^1.0.0"
593+
474594
"@next/env@14.2.6":
475595
version "14.2.6"
476596
resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.6.tgz#4f8ab1ca549a90bf0c83454b798b0ebae7098b15"
@@ -835,6 +955,11 @@
835955
resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438"
836956
integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==
837957

958+
"@replit/codemirror-lang-csharp@^6.2.0":
959+
version "6.2.0"
960+
resolved "https://registry.yarnpkg.com/@replit/codemirror-lang-csharp/-/codemirror-lang-csharp-6.2.0.tgz#bd652f5788ad93579ee0dcab5b163ed2674b974f"
961+
integrity sha512-6utbaWkoymhoAXj051mkRp+VIJlpwUgCX9Toevz3YatiZsz512fw3OVCedXQx+WcR0wb6zVHjChnuxqfCLtFVQ==
962+
838963
"@replit/codemirror-vim@^6.2.1":
839964
version "6.2.1"
840965
resolved "https://registry.yarnpkg.com/@replit/codemirror-vim/-/codemirror-vim-6.2.1.tgz#6673ff4be93b7da03d303ef37d6cbfa5f647b74b"

0 commit comments

Comments
 (0)