Skip to content

Commit add6f23

Browse files
authored
Merge pull request #3563 from obsidian-tasks-group/fix-issue-3546-ipad-iphone-parsing-broken
fix: Enable new iPad/iPhone OS versions to read Emoji tasks (#3546,#3560)
2 parents 6fb92e1 + 1557db0 commit add6f23

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

src/TaskSerializer/DefaultTaskSerializer.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ function fieldRegex(symbols: string, valueRegexString: string) {
6767
// The regexes end with `$` because they will be matched and
6868
// removed from the end until none are left.
6969
source += '$';
70-
return new RegExp(source, 'u');
70+
return new RegExp(source); // Remove the 'u' flag, to fix parsing on iPadOS/iOS 18.6 and 26 Public Beta 2
7171
}
7272

7373
/**
@@ -95,11 +95,11 @@ export const DEFAULT_SYMBOLS: DefaultTaskSerializerSymbols = {
9595
dependsOnSymbol: '⛔',
9696
idSymbol: '🆔',
9797
TaskFormatRegularExpressions: {
98-
priorityRegex: fieldRegex('([🔺⏫🔼🔽⏬])', ''),
98+
priorityRegex: fieldRegex('(🔺|⏫|🔼|🔽|⏬)', ''),
9999
startDateRegex: dateFieldRegex('🛫'),
100100
createdDateRegex: dateFieldRegex('➕'),
101-
scheduledDateRegex: dateFieldRegex('[⏳⌛]'),
102-
dueDateRegex: dateFieldRegex('[📅📆🗓]'),
101+
scheduledDateRegex: dateFieldRegex('(?:⏳|⌛)'),
102+
dueDateRegex: dateFieldRegex('(?:📅|📆|🗓)'),
103103
doneDateRegex: dateFieldRegex('✅'),
104104
cancelledDateRegex: dateFieldRegex('❌'),
105105
recurrenceRegex: fieldRegex('🔁', '([a-zA-Z0-9, !]+)'),

tests/TaskSerializer/DefaultTaskSerializer.test.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -65,17 +65,17 @@ describe('validate emoji regular expressions', () => {
6565
it('regular expressions should have expected source', () => {
6666
expect(generateRegexApprovalTest()).toMatchInlineSnapshot(`
6767
"
68-
priorityRegex: /([🔺⏫🔼🔽⏬])\\ufe0f?$/u
69-
startDateRegex: /🛫\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
70-
createdDateRegex: /➕\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
71-
scheduledDateRegex: /[⏳⌛]\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
72-
dueDateRegex: /[📅📆🗓]\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
73-
doneDateRegex: /✅\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
74-
cancelledDateRegex: /❌\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/u
75-
recurrenceRegex: /🔁\\ufe0f? *([a-zA-Z0-9, !]+)$/u
76-
onCompletionRegex: /🏁\\ufe0f? *([a-zA-Z]+)$/u
77-
dependsOnRegex: /⛔\\ufe0f? *([a-zA-Z0-9-_]+( *, *[a-zA-Z0-9-_]+ *)*)$/u
78-
idRegex: /🆔\\ufe0f? *([a-zA-Z0-9-_]+)$/u
68+
priorityRegex: /(🔺|⏫|🔼|🔽|⏬)\\ufe0f?$/
69+
startDateRegex: /🛫\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
70+
createdDateRegex: /➕\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
71+
scheduledDateRegex: /(?:⏳|⌛)\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
72+
dueDateRegex: /(?:📅|📆|🗓)\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
73+
doneDateRegex: /✅\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
74+
cancelledDateRegex: /❌\\ufe0f? *(\\d{4}-\\d{2}-\\d{2})$/
75+
recurrenceRegex: /🔁\\ufe0f? *([a-zA-Z0-9, !]+)$/
76+
onCompletionRegex: /🏁\\ufe0f? *([a-zA-Z]+)$/
77+
dependsOnRegex: /⛔\\ufe0f? *([a-zA-Z0-9-_]+( *, *[a-zA-Z0-9-_]+ *)*)$/
78+
idRegex: /🆔\\ufe0f? *([a-zA-Z0-9-_]+)$/
7979
"
8080
`);
8181
});

0 commit comments

Comments
 (0)