Skip to content

Commit 1029353

Browse files
committed
website: Add language example.
1 parent abbcc16 commit 1029353

File tree

3 files changed

+74
-5
lines changed

3 files changed

+74
-5
lines changed

README.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,49 @@ export default function App() {
4949
}
5050
```
5151

52+
## Support Language
53+
54+
[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)
55+
56+
```jsx
57+
import CodeMirror from '@uiw/react-codemirror';
58+
import { StreamLanguage } from '@codemirror/stream-parser';
59+
import { go } from '@codemirror/legacy-modes/mode/go';
60+
61+
const goLang = `package main
62+
import "fmt"
63+
64+
func main() {
65+
fmt.Println("Hello, 世界")
66+
}`;
67+
68+
export default function App() {
69+
return (
70+
<CodeMirror
71+
value={goLang}
72+
height="200px"
73+
extensions={[StreamLanguage.define(go)]}
74+
onChange={(value, viewUpdate) => {
75+
console.log('value:', value);
76+
}}
77+
/>
78+
);
79+
}
80+
```
81+
82+
- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)
83+
- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)
84+
- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)
85+
- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)
86+
- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)
87+
- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)
88+
- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)
89+
- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)
90+
- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)
91+
- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)
92+
- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)
93+
- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)
94+
5295
## Support Hook
5396

5497
[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-hook-yr4vg?fontsize=14&hidenavigation=1&theme=dark)

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777
"@codemirror/lang-rust": "0.19.1",
7878
"@codemirror/lang-sql": "0.19.3",
7979
"@codemirror/lang-xml": "0.19.1",
80+
"@codemirror/legacy-modes": "0.19.0",
81+
"@codemirror/stream-parser": "0.19.2",
8082
"@kkt/less-modules": "6.11.0",
8183
"@kkt/raw-modules": "6.11.0",
8284
"@kkt/scope-plugin-options": "6.11.0",

website/App.tsx

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,22 @@ import { json } from '@codemirror/lang-json';
1010
import { python } from '@codemirror/lang-python';
1111
import { markdown } from '@codemirror/lang-markdown';
1212
import { xml } from '@codemirror/lang-xml';
13-
import { sql } from '@codemirror/lang-sql';
13+
import { sql, MySQL, PostgreSQL } from '@codemirror/lang-sql';
1414
import { java } from '@codemirror/lang-java';
1515
import { rust } from '@codemirror/lang-rust';
1616
import { cpp } from '@codemirror/lang-cpp';
1717
import { lezer } from '@codemirror/lang-lezer';
1818
import { php } from '@codemirror/lang-php';
19+
import { StreamLanguage } from '@codemirror/stream-parser';
20+
import { go } from '@codemirror/legacy-modes/mode/go';
21+
import { ruby } from '@codemirror/legacy-modes/mode/ruby';
22+
import { shell } from '@codemirror/legacy-modes/mode/shell';
23+
import { lua } from '@codemirror/legacy-modes/mode/lua';
24+
import { swift } from '@codemirror/legacy-modes/mode/swift';
25+
import { tcl } from '@codemirror/legacy-modes/mode/tcl';
26+
import { yaml } from '@codemirror/legacy-modes/mode/yaml';
27+
import { vb } from '@codemirror/legacy-modes/mode/vb';
28+
import { powerShell } from '@codemirror/legacy-modes/mode/powershell';
1929
import logo from './logo.png';
2030
import styles from './App.module.less';
2131
import DocumentStr from '../README.md';
@@ -24,18 +34,32 @@ import { Select } from './Select';
2434

2535
const langs: Record<string, any> = {
2636
javascript,
37+
jsx: () => javascript({ jsx: true }),
38+
typescript: () => javascript({ typescript: true }),
39+
tsx: () => javascript({ jsx: true, typescript: true }),
40+
json,
2741
html,
2842
css,
29-
json,
3043
python,
3144
markdown,
3245
xml,
3346
sql,
47+
mysql: () => sql({ dialect: MySQL }),
48+
pgsql: () => sql({ dialect: PostgreSQL }),
3449
java,
3550
rust,
3651
cpp,
3752
lezer,
3853
php,
54+
go: () => StreamLanguage.define(go),
55+
ruby: () => StreamLanguage.define(ruby),
56+
shell: () => StreamLanguage.define(shell),
57+
lua: () => StreamLanguage.define(lua),
58+
swift: () => StreamLanguage.define(swift),
59+
tcl: () => StreamLanguage.define(tcl),
60+
yaml: () => StreamLanguage.define(yaml),
61+
vb: () => StreamLanguage.define(vb),
62+
powershell: () => StreamLanguage.define(powerShell),
3963
};
4064

4165
const hyperlink: {
@@ -77,15 +101,15 @@ export default function App() {
77101

78102
function handleLangChange(lang: string) {
79103
try {
80-
import(`code-example/txt/sample.${lang}.txt`)
104+
import(`code-example/txt/sample.${lang.toLocaleLowerCase()}.txt`)
81105
.then((data) => {
106+
setCode(data.default);
82107
if (langs[lang]) {
83108
setExtensions([langs[lang]()]);
84109
}
85-
setCode(data.default);
86110
setMode(lang);
87111
})
88-
.catch(() => {
112+
.catch((err) => {
89113
setExtensions([]);
90114
setMode(lang);
91115
setCode('');

0 commit comments

Comments
 (0)