Skip to content

Commit e65dd75

Browse files
authored
Merge pull request #2612 from obsidian-tasks-group/reduce-cyclic-deps
refactor: Reduce cyclic dependencies in src/
2 parents ce5eed5 + d334f6b commit e65dd75

39 files changed

+163
-131
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ yarn-error.log
2121

2222
# Code analysis output files
2323
/circular-deps.png
24-
/circular-deps.txt
24+
#/circular-deps.txt
2525

2626
# approval test files
2727
*.received.*

circular-deps.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Processed 152 files (995ms) (16 warnings)
2+
3+
1) Config/Settings.ts > Suggestor/Suggestor.ts
4+
2) Task/Task.ts > Config/Settings.ts > Suggestor/Suggestor.ts
5+
3) Task/Task.ts > Config/Settings.ts > Suggestor/Suggestor.ts > TaskSerializer/DefaultTaskSerializer.ts
6+
4) Task/Task.ts > Config/Settings.ts > TaskSerializer/DataviewTaskSerializer.ts
7+
5) Task/Task.ts > Task/DateFallback.ts
8+
6) Task/Task.ts > Task/Urgency.ts
9+
7) Task/Task.ts > lib/LogTasksHelper.ts
10+
8) Query/Query.ts > Query/Explain/Explainer.ts
11+
9) Query/FilterParser.ts > Query/Filter/BooleanField.ts
12+
10) main.ts > Config/SettingsTab.ts
13+
11) Obsidian/Cache.ts > Obsidian/TasksEvents.ts
14+
12) main.ts > Renderer/QueryRenderer.ts
15+

src/Commands/CreateOrEditTaskParser.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { Status } from '../Statuses/Status';
2-
import { Priority, Task, TaskRegularExpressions } from '../Task/Task';
2+
import { Task } from '../Task/Task';
33
import { DateFallback } from '../Task/DateFallback';
44
import { StatusRegistry } from '../Statuses/StatusRegistry';
55
import { TaskLocation } from '../Task/TaskLocation';
66
import { getSettings } from '../Config/Settings';
77
import { GlobalFilter } from '../Config/GlobalFilter';
8+
import { Priority } from '../Task/Priority';
9+
import { TaskRegularExpressions } from '../Task/TaskRegularExpressions';
810

911
function getDefaultCreatedDate() {
1012
const { setCreatedDate } = getSettings();

src/Commands/ToggleDone.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { Editor, type EditorPosition, type MarkdownFileInfo, MarkdownView } from 'obsidian';
22
import { StatusRegistry } from '../Statuses/StatusRegistry';
33

4-
import { Task, TaskRegularExpressions } from '../Task/Task';
4+
import { Task } from '../Task/Task';
55
import { TaskLocation } from '../Task/TaskLocation';
6+
import { TaskRegularExpressions } from '../Task/TaskRegularExpressions';
67

78
export const toggleDone = (checking: boolean, editor: Editor, view: MarkdownView | MarkdownFileInfo) => {
89
if (checking) {

src/Query/Filter/PriorityField.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { Priority, Task } from '../../Task/Task';
1+
import type { Task } from '../../Task/Task';
22
import { Explanation } from '../Explain/Explanation';
33
import type { Comparator } from '../Sort/Sorter';
44
import type { GrouperFunction } from '../Group/Grouper';
5+
import { Priority } from '../../Task/Priority';
56
import { Field } from './Field';
67
import { Filter } from './Filter';
78
import { FilterOrErrorMessage } from './FilterOrErrorMessage';

src/Renderer/TaskLineRenderer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { replaceTaskWithTasks } from '../Obsidian/File';
66
import type { TaskLayoutComponent, TaskLayoutOptions } from '../Layout/TaskLayoutOptions';
77
import type { QueryLayoutOptions } from '../Layout/QueryLayoutOptions';
88
import type { Task } from '../Task/Task';
9-
import * as taskModule from '../Task/Task';
109
import { StatusMenu } from '../ui/Menus/StatusMenu';
1110
import { StatusRegistry } from '../Statuses/StatusRegistry';
11+
import { TaskRegularExpressions } from '../Task/TaskRegularExpressions';
1212
import { TaskFieldRenderer } from './TaskFieldRenderer';
1313

1414
/**
@@ -309,7 +309,7 @@ export class TaskLineRenderer {
309309
}
310310

311311
function toTooltipDate({ signifier, date }: { signifier: string; date: Moment }): string {
312-
return `${signifier} ${date.format(taskModule.TaskRegularExpressions.dateFormat)} (${date.from(
312+
return `${signifier} ${date.format(TaskRegularExpressions.dateFormat)} (${date.from(
313313
window.moment().startOf('day'),
314314
)})`;
315315
}

src/Scripting/TasksDate.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { DurationInputArg2, Moment, unitOfTime } from 'moment';
22
import { Notice } from 'obsidian';
3-
import { TaskRegularExpressions } from '../Task/Task';
43
import { PropertyCategory } from '../lib/PropertyCategory';
4+
import { TaskRegularExpressions } from '../Task/TaskRegularExpressions';
55

66
/**
77
* TasksDate encapsulates a date, for simplifying the JavaScript expressions users need to

src/Statuses/StatusRegistryReport.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,3 @@ ${settingsTable}
4747
These are the settings actually used by Tasks.
4848
${mermaidText}`;
4949
}
50-
51-
export function getPrintableSymbol(symbol: string) {
52-
// Do not put backticks around an empty symbol, as the two backticks are rendered
53-
// by Obsidian as ordinary characters and the meaning is unclear.
54-
// Better to just display nothing in this situation.
55-
if (symbol === '') {
56-
return symbol;
57-
}
58-
const result = symbol !== ' ' ? symbol : 'space';
59-
return '`' + result + '`';
60-
}

src/Statuses/StatusSettingsReport.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,24 @@
11
import { StatusSettings } from '../Config/StatusSettings';
22
import { MarkdownTable } from '../lib/MarkdownTable';
33
import type { StatusConfiguration } from './StatusConfiguration';
4-
import { getPrintableSymbol } from './StatusRegistryReport';
5-
import { Status } from './Status';
64
import { StatusType } from './StatusConfiguration';
5+
import { Status } from './Status';
76

87
function getFirstIndex(statusConfigurations: StatusConfiguration[], wantedSymbol: string) {
98
return statusConfigurations.findIndex((s) => s.symbol === wantedSymbol);
109
}
1110

11+
export function getPrintableSymbol(symbol: string) {
12+
// Do not put backticks around an empty symbol, as the two backticks are rendered
13+
// by Obsidian as ordinary characters and the meaning is unclear.
14+
// Better to just display nothing in this situation.
15+
if (symbol === '') {
16+
return symbol;
17+
}
18+
const result = symbol !== ' ' ? symbol : 'space';
19+
return '`' + result + '`';
20+
}
21+
1222
function checkIfConventionalType(status: StatusConfiguration, problems: string[]) {
1323
// Check if conventional type is being used:
1424
const conventionalType = Status.getTypeForUnknownSymbol(status.symbol);

src/Suggestor/Suggestor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ import { DateParser } from '../Query/DateParser';
33
import { doAutocomplete } from '../lib/DateAbbreviations';
44
import { Recurrence } from '../Task/Recurrence';
55
import type { DefaultTaskSerializerSymbols } from '../TaskSerializer/DefaultTaskSerializer';
6-
import { Task, TaskRegularExpressions } from '../Task/Task';
6+
import { Task } from '../Task/Task';
77
import { GlobalFilter } from '../Config/GlobalFilter';
8+
import { TaskRegularExpressions } from '../Task/TaskRegularExpressions';
89
import type { SuggestInfo, SuggestionBuilder } from '.';
910

1011
/**

0 commit comments

Comments
 (0)