@@ -5,18 +5,8 @@ import UASTViewer, { Editor, withUASTEditor } from 'uast-viewer';
5
5
import api from '../api' ;
6
6
import './CodeViewer.less' ;
7
7
8
- const avaliableLangs = [
9
- 'Java' ,
10
- 'Go' ,
11
- 'Python' ,
12
- 'JavaScript' ,
13
- 'Php' ,
14
- 'Ruby' ,
15
- 'Typescript' ,
16
- 'Bash'
17
- ] ;
18
-
19
8
function EditorPane ( {
9
+ languages,
20
10
language,
21
11
showUast,
22
12
handleLangChange,
@@ -28,9 +18,9 @@ function EditorPane({
28
18
Language:{ ' ' }
29
19
< select value = { language } onChange = { handleLangChange } >
30
20
< option value = "" > Select language</ option >
31
- { avaliableLangs . map ( lang => (
32
- < option key = { lang } value = { lang . toLowerCase ( ) } >
33
- { lang }
21
+ { languages . map ( lang => (
22
+ < option key = { lang . id } value = { lang . id } >
23
+ { lang . name }
34
24
</ option >
35
25
) ) }
36
26
</ select >
@@ -48,6 +38,12 @@ function EditorPane({
48
38
}
49
39
50
40
EditorPane . propTypes = {
41
+ languages : PropTypes . arrayOf (
42
+ PropTypes . shape ( {
43
+ id : PropTypes . string . isRequired ,
44
+ name : PropTypes . string . isRequired
45
+ } )
46
+ ) ,
51
47
language : PropTypes . string ,
52
48
showUast : PropTypes . bool ,
53
49
handleLangChange : PropTypes . func . isRequired ,
@@ -56,6 +52,7 @@ EditorPane.propTypes = {
56
52
} ;
57
53
58
54
function EditorUASTSpitPane ( {
55
+ languages,
59
56
editorProps,
60
57
uastViewerProps,
61
58
showUast,
@@ -65,6 +62,7 @@ function EditorUASTSpitPane({
65
62
return (
66
63
< SplitPane split = "vertical" defaultSize = { 250 } minSize = { 175 } >
67
64
< EditorPane
65
+ languages = { languages }
68
66
language = { editorProps . languageMode }
69
67
showUast = { showUast }
70
68
handleLangChange = { handleLangChange }
@@ -77,6 +75,7 @@ function EditorUASTSpitPane({
77
75
}
78
76
79
77
EditorUASTSpitPane . propTypes = {
78
+ languages : EditorPane . propTypes . languages ,
80
79
editorProps : PropTypes . object ,
81
80
uastViewerProps : PropTypes . object ,
82
81
showUast : PropTypes . bool ,
@@ -166,6 +165,7 @@ class CodeViewer extends Component {
166
165
return (
167
166
< div className = "code-viewer" >
168
167
< EditorWithUAST
168
+ languages = { this . props . languages }
169
169
code = { this . props . code }
170
170
languageMode = { language }
171
171
showUast = { showUast }
@@ -187,6 +187,7 @@ class CodeViewer extends Component {
187
187
188
188
return (
189
189
< EditorPane
190
+ languages = { this . props . languages }
190
191
language = { language }
191
192
showUast = { showUast }
192
193
handleLangChange = { this . handleLangChange }
@@ -198,7 +199,8 @@ class CodeViewer extends Component {
198
199
}
199
200
200
201
CodeViewer . propTypes = {
201
- code : PropTypes . string . isRequired
202
+ code : PropTypes . string . isRequired ,
203
+ languages : EditorPane . propTypes . languages
202
204
} ;
203
205
204
206
export default CodeViewer ;
0 commit comments