Skip to content

Commit 3caf355

Browse files
Autocompletion for React Ace editor
* enable autocompletion * update snapshot * create vanilla source mode based on ace javascript mode * formatted custom source mode * restore mock env file * add description in source mode file * restore env.example * update snapshot * change object keys to non-strings and delete worker file * merge * merge * merge * Add link to source.js * Add URL to original file in react-ace, to serve as a reference Co-authored-by: alcen <49450743+alcen@users.noreply.github.com>
1 parent 98b4f43 commit 3caf355

File tree

5 files changed

+663
-33
lines changed

5 files changed

+663
-33
lines changed

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ REACT_APP_LUMINUS_CLIENT_ID=your_luminus_client_id_here
22
REACT_APP_VERSION=$npm_package_version
33
REACT_APP_BACKEND_URL=http://localhost:4001
44
REACT_APP_USE_BACKEND=TRUE
5-
REACT_APP_CHATKIT_INSTANCE_LOCATOR=instance_locator_here_otherwise_empty_string
5+
REACT_APP_CHATKIT_INSTANCE_LOCATOR=instance_locator_here_otherwise_empty_string

src/components/__tests__/__snapshots__/NavigationBar.tsx.snap

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,34 +9,22 @@ exports[`NavigationBar renders "Not logged in" correctly 1`] = `
99
Source Academy
1010
</Blueprint3.NavbarHeading>
1111
</NavLink>
12-
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/57290e55-335a-4c09-b904-a795572d6cda\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
12+
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/b1340bf4-fc99-4898-be2a-2c20e38c065f/announcements/active\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
1313
<Blueprint3.Button minimal={true}>
1414
<Blueprint3.Icon icon=\\"envelope\\" />
1515
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
1616
News
1717
</div>
1818
</Blueprint3.Button>
1919
</a>
20-
<a className=\\"NavigationBar__link\\" href=\\"https://piazza.com/class/juazn2axpf35wp\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
20+
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/b1340bf4-fc99-4898-be2a-2c20e38c065f/forum\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
2121
<Blueprint3.Button minimal={true}>
2222
<Blueprint3.Icon icon=\\"chat\\" />
2323
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
2424
Forum
2525
</div>
2626
</Blueprint3.Button>
2727
</a>
28-
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/material\\" aria-current=\\"page\\">
29-
<Blueprint3.Icon icon=\\"book\\" />
30-
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
31-
Material
32-
</div>
33-
</NavLink>
34-
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/sourcecast\\" aria-current=\\"page\\">
35-
<Blueprint3.Icon icon=\\"music\\" />
36-
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
37-
Sourcecast
38-
</div>
39-
</NavLink>
4028
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/playground\\" aria-current=\\"page\\">
4129
<Blueprint3.Icon icon=\\"code\\" />
4230
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
@@ -71,34 +59,22 @@ exports[`NavigationBar renders correctly with username 1`] = `
7159
Source Academy
7260
</Blueprint3.NavbarHeading>
7361
</NavLink>
74-
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/57290e55-335a-4c09-b904-a795572d6cda\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
62+
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/b1340bf4-fc99-4898-be2a-2c20e38c065f/announcements/active\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
7563
<Blueprint3.Button minimal={true}>
7664
<Blueprint3.Icon icon=\\"envelope\\" />
7765
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
7866
News
7967
</div>
8068
</Blueprint3.Button>
8169
</a>
82-
<a className=\\"NavigationBar__link\\" href=\\"https://piazza.com/class/juazn2axpf35wp\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
70+
<a className=\\"NavigationBar__link\\" href=\\"https://luminus.nus.edu.sg/modules/b1340bf4-fc99-4898-be2a-2c20e38c065f/forum\\" target=\\"_blank\\" rel=\\"noopener noreferrer\\">
8371
<Blueprint3.Button minimal={true}>
8472
<Blueprint3.Icon icon=\\"chat\\" />
8573
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
8674
Forum
8775
</div>
8876
</Blueprint3.Button>
8977
</a>
90-
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/material\\" aria-current=\\"page\\">
91-
<Blueprint3.Icon icon=\\"book\\" />
92-
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
93-
Material
94-
</div>
95-
</NavLink>
96-
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/sourcecast\\" aria-current=\\"page\\">
97-
<Blueprint3.Icon icon=\\"music\\" />
98-
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">
99-
Sourcecast
100-
</div>
101-
</NavLink>
10278
<NavLink activeClassName=\\"bp3-active\\" className=\\"NavigationBar__link bp3-button bp3-minimal\\" to=\\"/playground\\" aria-current=\\"page\\">
10379
<Blueprint3.Icon icon=\\"code\\" />
10480
<div className=\\"navbar-button-text hidden-xs hidden-sm\\">

src/components/workspace/Editor.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import AceEditor, { Annotation } from 'react-ace';
33
import { HotKeys } from 'react-hotkeys';
44
import sharedbAce from 'sharedb-ace';
55

6+
import 'brace/ext/language_tools';
67
import 'brace/ext/searchbox';
7-
import 'brace/mode/javascript';
8+
import './editorMode/source';
89
import './editorTheme/source';
910

1011
import { LINKS } from '../../utils/constants';
@@ -150,14 +151,17 @@ class Editor extends React.PureComponent<IEditorProps, {}> {
150151
fontSize={17}
151152
height="100%"
152153
highlightActiveLine={false}
153-
mode="javascript"
154+
mode="source"
154155
onChange={this.onChangeMethod}
155156
onValidate={this.onValidateMethod}
156157
theme="source"
157158
value={this.props.editorValue}
158159
width="100%"
159160
setOptions={{
160-
fontFamily: "'Inconsolata', 'Consolas', monospace"
161+
fontFamily: "'Inconsolata', 'Consolas', monospace",
162+
enableBasicAutocompletion: true,
163+
enableLiveAutocompletion: true,
164+
enableSnippets: true
161165
}}
162166
/>
163167
</div>

src/components/workspace/__tests__/__snapshots__/Editor.tsx.snap

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
exports[`Editor renders correctly 1`] = `
44
"<HotKeys className=\\"Editor\\" handlers={{...}}>
55
<div className=\\"row editor-react-ace\\">
6-
<ReactAce className=\\"react-ace\\" commands={{...}} editorProps={{...}} markers={{...}} fontSize={17} height=\\"100%\\" highlightActiveLine={false} mode=\\"javascript\\" onChange={[Function]} onValidate={[Function]} theme=\\"source\\" value=\\"\\" width=\\"100%\\" setOptions={{...}} name=\\"brace-editor\\" focus={false} showGutter={true} onPaste={{...}} onLoad={{...}} onScroll={{...}} minLines={{...}} maxLines={{...}} readOnly={false} showPrintMargin={true} tabSize={4} cursorStart={1} style={{...}} scrollMargin={{...}} wrapEnabled={false} enableBasicAutocompletion={false} enableLiveAutocompletion={false} />
6+
<ReactAce className=\\"react-ace\\" commands={{...}} editorProps={{...}} markers={{...}} fontSize={17} height=\\"100%\\" highlightActiveLine={false} mode=\\"source\\" onChange={[Function]} onValidate={[Function]} theme=\\"source\\" value=\\"\\" width=\\"100%\\" setOptions={{...}} name=\\"brace-editor\\" focus={false} showGutter={true} onPaste={{...}} onLoad={{...}} onScroll={{...}} minLines={{...}} maxLines={{...}} readOnly={false} showPrintMargin={true} tabSize={4} cursorStart={1} style={{...}} scrollMargin={{...}} wrapEnabled={false} enableBasicAutocompletion={false} enableLiveAutocompletion={false} />
77
</div>
88
</HotKeys>"
99
`;

0 commit comments

Comments
 (0)