File tree Expand file tree Collapse file tree 4 files changed +14
-1
lines changed Expand file tree Collapse file tree 4 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,14 @@ export class IdField extends Field {
11
11
this . filterInstructions . add ( 'has id' , ( task : Task ) => task . id . length > 0 ) ;
12
12
}
13
13
14
+ public canCreateFilterForLine ( line : string ) : boolean {
15
+ if ( this . filterInstructions . canCreateFilterForLine ( line ) ) {
16
+ return true ;
17
+ }
18
+
19
+ return super . canCreateFilterForLine ( line ) ;
20
+ }
21
+
14
22
public createFilterOrErrorMessage ( line : string ) : FilterOrErrorMessage {
15
23
const filterResult = this . filterInstructions . createFilterOrErrorMessage ( line ) ;
16
24
if ( filterResult . filter !== undefined ) {
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ import { RootField } from './Filter/RootField';
29
29
import { BacklinkField } from './Filter/BacklinkField' ;
30
30
import { CancelledDateField } from './Filter/CancelledDateField' ;
31
31
import { BlockingField } from './Filter/BlockingField' ;
32
+ import { IdField } from './Filter/IdField' ;
32
33
33
34
// When parsing a query the fields are tested one by one according to this order.
34
35
// Since BooleanField is a meta-field, which needs to aggregate a few fields together, it is intended to
@@ -61,6 +62,7 @@ export const fieldCreators: EndsWith<BooleanField> = [
61
62
( ) => new UrgencyField ( ) ,
62
63
( ) => new RecurrenceField ( ) ,
63
64
( ) => new FunctionField ( ) ,
65
+ ( ) => new IdField ( ) ,
64
66
( ) => new BlockingField ( ) ,
65
67
( ) => new BooleanField ( ) , // --- Please make sure to keep BooleanField last (see comment above) ---
66
68
] ;
Original file line number Diff line number Diff line change @@ -11,7 +11,9 @@ describe('id', () => {
11
11
12
12
it ( 'by id presence' , ( ) => {
13
13
// Arrange
14
- const filter = new IdField ( ) . createFilterOrErrorMessage ( 'has id' ) ;
14
+ const line = 'has id' ;
15
+ const filter = new IdField ( ) . createFilterOrErrorMessage ( line ) ;
16
+ expect ( idField . canCreateFilterForLine ( line ) ) . toEqual ( true ) ;
15
17
16
18
// Act, Assert
17
19
testFilter ( filter , new TaskBuilder ( ) . id ( '' ) , false ) ;
Original file line number Diff line number Diff line change @@ -87,6 +87,7 @@ describe('Query parsing', () => {
87
87
'has done date' ,
88
88
'has due date' ,
89
89
'has happens date' ,
90
+ 'has id' ,
90
91
'has scheduled date' ,
91
92
'has start date' ,
92
93
'has tag' ,
You can’t perform that action at this time.
0 commit comments