Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit df033cc

Browse files
committed
backticks tests and untoggling update
1 parent b743e8b commit df033cc

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

src/editor/deserialize.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function escape(text: string): string {
3333
// Finds the length of the longest backtick sequence in the given text, used for
3434
// escaping backticks in code blocks
3535
export function longestBacktickSequence(text: string): number {
36-
let length = 0;
36+
let length = 1;
3737
let currentLength = 0;
3838

3939
for (const c of text) {

src/editor/operations.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -208,15 +208,15 @@ export function formatRangeAsCode(range: Range): void {
208208
parts.push(partCreator.newline());
209209
}
210210
} else {
211+
const fenceLen = longestBacktickSequence(range.text);
211212
if (hasBacktick) {
212-
parts.unshift(partCreator.plain("`".repeat(longestBacktickSequence(range.text)+ 1)));
213-
parts.push(partCreator.plain("`".repeat(longestBacktickSequence(range.text)+ 1)));
213+
parts.unshift(partCreator.plain("`".repeat(fenceLen + 1)));
214+
parts.push(partCreator.plain("`".repeat(fenceLen+ 1)));
214215
} else {
215-
toggleInlineFormat(range, "`".repeat(longestBacktickSequence(range.text)));
216+
toggleInlineFormat(range, "`".repeat(fenceLen));
216217
return;
217218
}
218219
}
219-
220220
replaceRangeAndExpandSelection(range, parts);
221221
}
222222

test/editor/operations-test.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
toggleInlineFormat,
2222
selectRangeOfWordAtCaret,
2323
formatRange,
24+
formatRangeAsCode,
2425
} from "../../src/editor/operations";
2526
import { Formatting } from "../../src/components/views/rooms/MessageComposerFormatBar";
2627
import { longestBacktickSequence } from '../../src/editor/deserialize';
@@ -58,7 +59,7 @@ describe('editor/operations: formatting operations', () => {
5859
expect(range.parts[0].text.trim().includes("`")).toBeTruthy();
5960
expect(longestBacktickSequence(range.parts[0].text.trim())).toBe(1);
6061
expect(model.serializeParts()).toEqual([{ "text": "hello ` world!", "type": "plain" }]);
61-
toggleInlineFormat(range, "`".repeat(longestBacktickSequence(range.parts[0].text.trim()) + 1));
62+
formatRangeAsCode(range);
6263
expect(model.serializeParts()).toEqual([{ "text": "``hello ` world``!", "type": "plain" }]);
6364
});
6465

0 commit comments

Comments
 (0)