Skip to content

Commit d314ae1

Browse files
committed
Making the bold functionality better
1 parent f2f5548 commit d314ae1

File tree

3 files changed

+31
-25
lines changed

3 files changed

+31
-25
lines changed

src/ReactMdeCommands.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { insertText } from './TextHelper';
1+
import { insertText, getSurroundingWord } from './TextHelper';
22

33
export default {
44

@@ -10,6 +10,13 @@ export default {
1010
* @returns
1111
*/
1212
makeBold: function (text, selection) {
13+
14+
if (selection[0] == selection[1]) {
15+
// the user is pointing to a word
16+
selection = getSurroundingWord(text, selection[0]).position;
17+
18+
}
19+
// the user is selecting a word section
1320
var newText = insertText(text, '**', selection[0]);
1421
newText = insertText(newText, '**', selection[1] + 2);
1522
return {

src/TextHelper.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ export function getSurroundingWord(text, position) {
4444

4545
return {
4646
word: text.slice(leftIndex, rightIndex),
47-
leftIndex: leftIndex,
48-
rightIndex: rightIndex
47+
position: [leftIndex,rightIndex]
4948
};
5049
}

test/TextHelperSpec.js

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,80 +27,80 @@ describe("TextHelperSpec.js", function () {
2727
it('Basic usage', function () {
2828
var result = getSurroundingWord('bob went to school', 5);
2929
assert.strictEqual(result.word, 'went');
30-
assert.strictEqual(result.leftIndex, 4);
31-
assert.strictEqual(result.rightIndex, 8);
30+
assert.strictEqual(result.position[0], 4);
31+
assert.strictEqual(result.position[1], 8);
3232
});
3333

3434
it('Word edge to the right', function () {
3535
var result = getSurroundingWord('bob went to school', 8);
3636
assert.strictEqual(result.word, 'went');
37-
assert.strictEqual(result.leftIndex, 4);
38-
assert.strictEqual(result.rightIndex, 8);
37+
assert.strictEqual(result.position[0], 4);
38+
assert.strictEqual(result.position[1], 8);
3939
});
4040

4141
it('Word edge to the left', function () {
4242
var result = getSurroundingWord('bob went to school', 4);
4343
assert.strictEqual(result.word, 'went');
44-
assert.strictEqual(result.leftIndex, 4);
45-
assert.strictEqual(result.rightIndex, 8);
44+
assert.strictEqual(result.position[0], 4);
45+
assert.strictEqual(result.position[1], 8);
4646
});
4747

4848
it('text beginning', function () {
4949
var result = getSurroundingWord('bob went to school', 0);
5050
assert.strictEqual(result.word, 'bob');
51-
assert.strictEqual(result.leftIndex, 0);
52-
assert.strictEqual(result.rightIndex, 3);
51+
assert.strictEqual(result.position[0], 0);
52+
assert.strictEqual(result.position[1], 3);
5353
});
5454

5555
it('text ending', function () {
5656
var result = getSurroundingWord('bob went to school', 18);
5757
assert.strictEqual(result.word, 'school');
58-
assert.strictEqual(result.leftIndex, 12);
59-
assert.strictEqual(result.rightIndex, 18);
58+
assert.strictEqual(result.position[0], 12);
59+
assert.strictEqual(result.position[1], 18);
6060
});
6161

6262
// tests with line breaks
6363
it('Basic usage with line breaks', function () {
6464
var result = getSurroundingWord('bob\nwent\nto school', 5);
6565
assert.strictEqual(result.word, 'went');
66-
assert.strictEqual(result.leftIndex, 4);
67-
assert.strictEqual(result.rightIndex, 8);
66+
assert.strictEqual(result.position[0], 4);
67+
assert.strictEqual(result.position[1], 8);
6868
});
6969

7070
it('text ending with line break', function () {
7171
var result = getSurroundingWord('bob went to school\n', 18);
7272
assert.strictEqual(result.word, 'school');
73-
assert.strictEqual(result.leftIndex, 12);
74-
assert.strictEqual(result.rightIndex, 18);
73+
assert.strictEqual(result.position[0], 12);
74+
assert.strictEqual(result.position[1], 18);
7575
});
7676

7777
it('text beginning with line break', function () {
7878
var result = getSurroundingWord('\nbob went to school', 1);
7979
assert.strictEqual(result.word, 'bob');
80-
assert.strictEqual(result.leftIndex, 1);
81-
assert.strictEqual(result.rightIndex, 4);
80+
assert.strictEqual(result.position[0], 1);
81+
assert.strictEqual(result.position[1], 4);
8282
});
8383

8484
// edge cases
8585
it('within spaces', function() {
8686
var result = getSurroundingWord(' ', 1);
8787
assert.strictEqual(result.word, '');
88-
assert.strictEqual(result.leftIndex, 1);
89-
assert.strictEqual(result.rightIndex, 1);
88+
assert.strictEqual(result.position[0], 1);
89+
assert.strictEqual(result.position[1], 1);
9090
});
9191

9292
it('within spaces 2', function() {
9393
var result = getSurroundingWord(' ', 2);
9494
assert.strictEqual(result.word, '');
95-
assert.strictEqual(result.leftIndex, 2);
96-
assert.strictEqual(result.rightIndex, 2);
95+
assert.strictEqual(result.position[0], 2);
96+
assert.strictEqual(result.position[1], 2);
9797
});
9898

9999
it('within line-breaks', function() {
100100
var result = getSurroundingWord('\n\n\n', 1);
101101
assert.strictEqual(result.word, '');
102-
assert.strictEqual(result.leftIndex, 1);
103-
assert.strictEqual(result.rightIndex, 1);
102+
assert.strictEqual(result.position[0], 1);
103+
assert.strictEqual(result.position[1], 1);
104104
});
105105
});
106106

0 commit comments

Comments
 (0)