92e73c414d
Move core Note classes into a separate file
...
I'm trying to get ride of this huge 'Note' class, and have it be quite
dumb. The idea is that we'll have separate Note subclasses - TxtNote,
MdNote, etc
2022-04-24 13:09:14 +02:00
ea221941e0
Fix renaming a note test
2022-02-28 14:02:59 +01:00
ae09b1ba12
Add unawaited or explicitly wait
...
There are still many cases (over 60) to fix.
2022-02-23 15:15:49 +01:00
afd7690611
Use fast_immutable_collections instead of Kt
...
It's much more intuitive to use, and is way more performant.
2022-01-27 12:13:34 +01:00
3841cdcab9
Note.tags: Use an compile time immutable set
2022-01-27 11:52:43 +01:00
dd88bf2cb7
Repo.createFolder: Allow it to fail
2022-01-26 12:01:47 +01:00
6eaae014da
NotesFolderFS: Simplify
...
Avoid passing the FileStorage since the parent already has it
2022-01-26 12:01:47 +01:00
c9a031dd29
moveNote: Add test + fix
...
Fixes #590
2022-01-26 12:01:47 +01:00
4b9b40045c
Allow the 'editor type' yaml key to be configured
...
The keyword 'type' intefers with Foam.
Fixes #567
2022-01-22 10:40:10 +01:00
901e4b5cb9
Avoid importing dart_git's Result class
...
It's easier to see where all dart_git is used this way, and this result
class should be refactored into its own package anyway.
2022-01-22 10:11:45 +01:00
f5ef08fd09
Repository.rename: Fail if the destination exists
2022-01-21 21:29:11 +01:00
abbfbba961
Add a high level test for renaming a Note
...
Now that GitJournal is following a redux style, writing tests for the
domain logic is much easier.
2022-01-21 16:27:48 +01:00
83d122d06f
Note.oid: The oid is now only empty when the file hasn't yet been saved
2022-01-20 17:51:32 +01:00
b38c97454b
Compute the file hash on saving a note
...
It's not ideal as the hash is now calculated twice, but it simplifies
such a large porition of the code as I can put proper asserts to make
sure all Files in the NotesFolderFS always have a valid GitHash.
2022-01-20 15:43:22 +01:00
7bdf52165c
Ensure the Note's file is reloaded on reloading the Note
...
Also add more asserts.
2022-01-20 14:34:48 +01:00
802b177d3e
Remove invalid assert
...
This will happen when a note is modified or a new note is added.
2022-01-20 14:05:47 +01:00
61e5304991
Ensure the File oid is never empty
...
This shouldn't be happening
2022-01-20 13:39:30 +01:00
812860aa78
FlattenedNotesFolders: Update the note internally when modified
...
This wasn't needed before as notes were passed by reference. Whereas
they are now immutable.
2022-01-20 12:26:58 +01:00
7fce95c187
Make Note class immutable
...
This greatly simplifies the entire data flow. Though, it comes at the
risk of introducing bugs, but I think it's worth it.
Plus, it makes everything far far more testable.
2022-01-18 21:42:56 +01:00
a6eb613b5a
Fix note renaming
2022-01-14 17:09:41 +01:00
0488714e89
Refactor note file naming logic
...
I want to make the note class immutable, and the file path naming logic
is the toughest part.
2022-01-14 12:55:27 +01:00
e2b6d94eda
analyzer: Fix unnecessry includes
2022-01-13 19:03:16 +01:00
f4e8437c91
FolderTree: Subfolders shouldn't show the full path
2022-01-13 18:27:10 +01:00
0441bc51e2
Enable assert
2022-01-07 16:08:35 +01:00
0997844e4e
FlattenedNotesFolder: Optimize
...
Using a list causes quite a big slowdown when inserting notes as one has
to check if the note has already been inserted.
2022-01-05 15:51:32 +01:00
4d337c3d6f
Find index numbers in the FlattenedNotesFolder
...
I'm an idiot
2022-01-05 15:27:25 +01:00
787fd783b7
Reload the FileStorage cache if it is missing items
...
I'm not sure if this is a good idea as it results in the same Repo being
rebuilt again and again and again.
2021-12-29 11:20:28 +01:00
fce67766db
Fix renaming a new note
...
Don't propogate the signals as that note isn't attached to a folder so
far. This method of renaming is too hacky.
2021-12-22 21:35:15 +01:00
812a7b5263
FlattenedNotesFolder: Fix note index
2021-12-22 21:30:39 +01:00
8867e13c16
FilteredNotesFolder: Implement it properly
...
I wasn't taking folders which have finished loading into account.
2021-12-20 15:02:38 +01:00
073de700e5
Avoid double flattening
2021-12-20 09:28:00 +01:00
7830737a17
cleanup
2021-12-20 09:28:00 +01:00
ff1f944761
Extra assert
2021-12-20 09:28:00 +01:00
2fecc1ab1d
NotesFolderFS: Do not replace the original folder on load
...
Otherwise the notifiers are lost.
2021-12-20 09:28:00 +01:00
f4fc349e99
NotesFolderNotifier: More asserts
2021-12-20 09:28:00 +01:00
4c95e739ed
Always update the entityMap
2021-12-20 09:28:00 +01:00
391ad685a8
NotesFolderFS: Update the entity map as well
...
urgh.
2021-12-20 09:28:00 +01:00
60b2922176
NotesFolder: Only notify if modified if really modified
...
Reloading the note doesn't count as a modification
2021-12-20 09:28:00 +01:00
559b0495d2
Make the sorting stable
2021-12-20 09:28:00 +01:00
a5de1e1435
Minor optimization
2021-12-20 09:28:00 +01:00
1bd735940b
FlattenedNotesFolder: Do not allow duplicates
...
And make everything a bit faster.
2021-12-20 09:28:00 +01:00
98b81a74a8
NotesCache: Load the notes properly
...
Not sure why I ever added this 'addFile' method.
2021-12-20 09:28:00 +01:00
5f8a4d7de3
Repo: Avoid mutable state
...
The repoFolder can no longer ever be renamed. If it needs to be, then
the GitJournalRepo object, must be reconstructed. This simplifies the
entire code base enourmously, as I can mark tons of variables as 'final'
and I don't need to remember to reinitialize complex dependencies when
the repoPath changes.
2021-12-10 16:02:36 +01:00
87202dc590
Builders: Output their size
...
It's just nice to know
2021-12-08 14:45:30 +01:00
81b6ebe2f5
lint: avoid-ignoring-return-values++
2021-11-17 18:10:59 +01:00
e5eb8c1576
lint: avoid-ignoring-return-values++
2021-11-17 18:10:59 +01:00
5b71a936d2
Remove late
...
It's default value matters.
2021-11-15 12:39:12 +01:00
e589d1c1eb
Experiment with a CalendarView
2021-11-15 12:39:12 +01:00
015659d58f
Allow a note to be renamed to whatever
...
Earlier one could never change a note type, and therefore its extension.
Now you can rename a note's filename to whatever and accordingly the
editor will change.
A warning message is shown when changing the file type.
Fixes #474
2021-11-15 12:39:12 +01:00
a149371a44
Map EditorTypes with NoteFileFormat
...
Certain Editors only support certain file formats. We can create an
editor either by -
* Giving it a Note, and letting it choose an editor based on the default
/ note metadata
* New Note with a file type
* New Note with a editor type + possible file type
2021-11-09 15:43:57 +01:00