Skip to content

Commit 26cc0db

Browse files
committed
set cursor position, fixes
1 parent 38d8813 commit 26cc0db

File tree

11 files changed

+42
-22
lines changed

11 files changed

+42
-22
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@ This project adheres to [Semantic Versioning](http://semver.org/).
2121
- smoother setup process
2222
- style, ui improvements
2323

24-
## [0.5.3] - in progress
24+
## [0.5.3] - 2016-03-07
2525
- fix tutorial progress issues
26+
- use `::>` to set cursor position

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
Interactive coding tutorials inside of the Atom editor. [Learn more](https://coderoad.github.io).
44

5-
See a [video](https://youtu.be/DbLpdgrYVOU).
6-
75
![Atom-CodeRoad](https://coderoad.github.io/img/gif/atom-coderoad-0.5.1.gif)
86

7+
See a [video](https://youtu.be/DbLpdgrYVOU).
8+
99
## Docs
1010

1111
* [QuickStart](https://coderoad.github.io/docs/#install)

lib/atom/editor.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ function set(text) {
5656
editor.insertNewline();
5757
editor.moveToBottom();
5858
editor.save();
59+
setCursorPosition(editor);
5960
});
6061
}
6162
exports.set = set;
@@ -70,9 +71,17 @@ function insert(text, options) {
7071
editor.insertNewline();
7172
editor.moveToBottom();
7273
editor.save();
74+
setCursorPosition(editor);
7375
});
7476
}
7577
exports.insert = insert;
78+
function setCursorPosition(editor) {
79+
editor.scan(/::>/g, function (match) {
80+
var start = match.range.start;
81+
match.replace('');
82+
editor.setCursorScreenPosition(start, { autoscroll: true });
83+
});
84+
}
7685
function closeAllPanels() {
7786
var editors = atom.workspace.getTextEditors();
7887
editors.forEach(function (editor) {

lib/components/app/app.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,20 @@ var __metadata = (this && this.__metadata) || function (k, v) {
1616
var React = require('react');
1717
var react_redux_1 = require('react-redux');
1818
var _components_1 = require('../_components');
19+
var ThemeDecorator = require('material-ui/lib/styles/theme-decorator');
1920
var ThemeManager = require('material-ui/lib/styles/theme-manager');
2021
var theme_1 = require('../theme/theme');
2122
var default_1 = (function (_super) {
2223
__extends(default_1, _super);
2324
function default_1() {
2425
_super.apply(this, arguments);
2526
}
26-
default_1.prototype.getChildContext = function () {
27-
return {
28-
muiTheme: ThemeManager.getMuiTheme(theme_1.default)
29-
};
30-
};
3127
default_1.prototype.render = function () {
3228
var state = this.props.state;
3329
return (React.createElement("section", {className: 'cr', key: 'main'}, React.createElement(_components_1.Menu, {route: state.route, position: state.position}), React.createElement(_components_1.Router, {state: state}), React.createElement(_components_1.Alert, {alert: state.alert})));
3430
};
35-
default_1.childContextTypes = {
36-
muiTheme: React.PropTypes.object,
37-
};
3831
default_1 = __decorate([
32+
ThemeDecorator(ThemeManager.getMuiTheme(theme_1.default)),
3933
react_redux_1.connect(function (state) {
4034
return { state: state };
4135
}),

lib/components/menu/menu.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ var default_1 = (function (_super) {
3030
default_1.prototype.navOptions = function () {
3131
var _a = this.props, routeToProgress = _a.routeToProgress, routeToPage = _a.routeToPage;
3232
switch (this.props.route) {
33+
case 'final':
3334
case 'page':
3435
return React.createElement("button", {onTouchTap: routeToProgress}, "progress");
35-
case 'final':
3636
case 'progress':
3737
return React.createElement("button", {onTouchTap: routeToPage}, "page");
3838
default: return null;
@@ -41,9 +41,9 @@ var default_1 = (function (_super) {
4141
default_1.prototype.menuOptions = function () {
4242
var _a = this.props, routeToProgress = _a.routeToProgress, routeToProjects = _a.routeToProjects;
4343
switch (this.props.route) {
44+
case 'final':
4445
case 'page':
4546
return (React.createElement("div", null, React.createElement(material_ui_1.MenuItem, {primaryText: 'progress', onTouchTap: routeToProgress, key: 'progress'}), React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onTouchTap: routeToProjects, key: 'projects'})));
46-
case 'final':
4747
case 'progress':
4848
return React.createElement(material_ui_1.MenuItem, {primaryText: 'projects', onTouchTap: routeToProjects, key: 'projects'});
4949
default: return null;

lib/services/child-process.js

Whitespace-only changes.

src/atom/editor.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export function set(text: string) {
5959
editor.insertNewline();
6060
editor.moveToBottom();
6161
editor.save();
62+
setCursorPosition(editor);
6263
});
6364
}
6465

@@ -72,6 +73,15 @@ export function insert(text: string, options = {}) {
7273
editor.insertNewline();
7374
editor.moveToBottom();
7475
editor.save();
76+
setCursorPosition(editor);
77+
});
78+
}
79+
80+
function setCursorPosition(editor: AtomCore.IEditor) {
81+
editor.scan(/::>/g, function (match) {
82+
let start = match.range.start;
83+
match.replace('');
84+
editor.setCursorScreenPosition(start, {autoscroll: true});
7585
});
7686
}
7787

src/components/app/app.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,15 @@
11
import * as React from 'react';
22
import {connect} from 'react-redux';
33
import {Menu, Router, Alert} from '../_components';
4+
import * as ThemeDecorator from 'material-ui/lib/styles/theme-decorator';
45
import * as ThemeManager from 'material-ui/lib/styles/theme-manager';
56
import Theme from '../theme/theme';
67

8+
@ThemeDecorator(ThemeManager.getMuiTheme(Theme))
79
@connect((state: CR.State) => {
810
return { state };
911
})
1012
export default class extends React.Component<{state?: CR.State}, {}> {
11-
static childContextTypes = {
12-
muiTheme: React.PropTypes.object,
13-
};
14-
getChildContext() {
15-
return {
16-
muiTheme: ThemeManager.getMuiTheme(Theme)
17-
};
18-
}
1913
render(): React.ReactElement<{}> {
2014
const state = this.props.state;
2115
return (

src/services/child-process.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// import exec from ''
2+
// var exec = require('child_process').exec,
3+
// child;
4+
//
5+
// child = exec('npm install ffi',
6+
// function (error, stdout, stderr) {
7+
// console.log('stdout: ' + stdout);
8+
// console.log('stderr: ' + stderr);
9+
// if (error !== null) {
10+
// console.log('exec error: ' + error);
11+
// }
12+
// });

src/typings/tsd.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,5 @@
1515
/// <reference path="text-buffer/text-buffer.d.ts" />
1616
/// <reference path="react/react-addons-css-transition-group.d.ts" />
1717
/// <reference path="marked/marked" />
18-
/// <reference path="enpeem/enpeem" />
1918
/// <reference path="cr/cr.d.ts" />
2019
/// <reference path="cr/globals.d.ts" />

tsconfig.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
"src/reducers/tasks/tasks.ts",
8787
"src/reducers/tutorials/tutorials.ts",
8888
"src/reducers/warning/warning.ts",
89+
"src/services/child-process.ts",
8990
"src/services/exists.ts",
9091
"src/services/package.ts",
9192
"src/services/polyfills.ts",

0 commit comments

Comments
 (0)