Commit Graph

118 Commits

Author SHA1 Message Date
SebastianMC 99cea92322 #171 - a PoC of the idea of metadata value extractors. Unit tests. 2024-11-06 10:00:23 +01:00
SebastianMC 9e2e12046d #171 - a PoC of the idea of metadata value extractors. Extended syntax, unit tests, error handling 2024-11-05 20:12:47 +01:00
SebastianMC f210a412d3 #171 - a PoC of the idea of metadata value extractors. Working version, missing errors detection for new scenarios 2024-11-04 14:30:49 +01:00
SebastianMC d82a80c063 #171 - a PoC of the idea of metadata value extractors. Completed the sorting spec parser part. 2024-11-03 23:16:57 +01:00
SebastianMC 42a5f1feb2 #171 - started creation of a PoC of the idea of metadata value extractors. At a glance a low hanging fruit turned out to be far too complex to be worth it. 2024-11-03 22:56:55 +01:00
SebastianMC 1019484935 #160 - compatibility with Obsidian 1.7.2
- the fileExplorer patchability check made smarter and version-dependent
- the plugin-integration-point support required by Obsidian 1.7.2 has been already incorporated in the plugin earlier on, for 1.6.0 Obsidian release
2024-09-20 18:53:50 +02:00
SebastianMC efe8e13267 #156 - improved support for index-note-based folder notes - fresh head review
- typos correction
- comment updates for clarity
2024-09-05 20:01:11 +02:00
SebastianMC 60a60dfb72 #156 - improved support for index-note-based folder notes
- implementation completed, basic tests done
- needs code review with a fresh head
- needs more regression tests of affected sorting methods
2024-09-02 00:11:29 +02:00
SebastianMC 605d5026a6 #156 - improved support for index-note-based folder notes: PUT ON HOLD
- turned out to be not so trivial with one challenging place
- PUT ON HOLD
- added inline annotations with !!! (intentionally breaking the TS syntax)
2024-09-01 17:07:56 +02:00
SebastianMC e66d7be9d3 Extracted setting to a separate settings.ts 2024-09-01 15:23:38 +02:00
SebastianMC 16b50c3c20 #150 - Sort notes in dd-Mmm-yyyy format
- completed, tested.
2024-07-10 12:06:01 +02:00
SebastianMC 92a33215cc #150 - Sort notes in dd-Mmm-yyyy format
- additional unit tests
- fixes detected by unit tests

Next step: manual local testing of real scenarios
2024-07-08 23:49:24 +02:00
SebastianMC a7b807d5f5 #150 - Sort notes in dd-Mmm-yyyy format 2024-07-08 21:36:26 +02:00
SebastianMC 3bc307c121 Bugifx for #147 2024-06-10 22:35:28 +02:00
SebastianMC d59b1af62a #137 - Impose File Explorer refresh with standard sorting when the plugin gets disabled 2024-06-07 23:37:44 +02:00
SebastianMC 3c257bc5d2 #145 - polished code w/o duplication in main.js 2024-05-14 08:47:38 +02:00
SebastianMC 4ab21d6ff5 #145 - refactored the plugin integration point and sorting function invocation and wrapper(s) to work under Obsidian 1.6.0 (which introduced significant refactoring)
Remains to do:
- polish the code to remove duplication in main.js
- full testing under 1.6.0
- regression tests under latest 1.5.x (the code is backward compatible)
2024-05-13 20:14:03 +02:00
SebastianMC f5c64845ba The global `app` object becomes deprecated in Obsidian 1.6.0
- subsequent code adjustments
2024-05-13 14:51:57 +02:00
SebastianMC 2af53aa692 Removed debug console outputs 2024-05-13 14:51:05 +02:00
SebastianMC 107c32e461 The global `app` object becomes deprecated in Obsidian 1.6.0
- switched code to use the DI approach - the handle to `app` is handed over to the Plugin at initializaion. Keep in and supply down the execution chain, as needed
2024-05-13 14:36:13 +02:00
SebastianMC 8d9ccdd516 Version bump before release 2024-02-20 18:27:19 +01:00
SebastianMC 702fe9e027 Extracted and extended a basic integration test 2024-02-19 10:40:38 +01:00
SebastianMC 2c3de3d609 Reorganised unit tests locations - moved all of them to a dedicated folder 2024-02-19 08:59:17 +01:00
SebastianMC ba54e63a48 #132 - new orders: `advanced recursive modified` and `advanced recursive created` 2024-02-19 08:53:43 +01:00
SebastianMC 5ac915547c Introduced alias sorting name `unicode-charcode` for the `vsc-unicode`, for clarity for non-VSC users. 2024-02-13 16:30:54 +01:00
SebastianMC 424e56c962 Removed support for the experimental sorting methods: `aaa-z` and `a-zzz`. They weren't working correctly. 2024-02-13 16:24:15 +01:00
SebastianMC 53b5895e81 Bugfix for #131
Obsidian introduced breaking changes around File Explorer JS structure which prevented this custom-sort plugin from working.
- fix backward compatible with versions earlier that 1.5.4
- version bump before release
2024-02-09 14:24:04 +01:00
SebastianMC 9f4008c2a2 Revert "Bugfix for #131"
This reverts commit 238c027903.
2024-02-09 14:03:48 +01:00
SebastianMC 238c027903 Bugfix for #131
Obsidian introduced breaking changes around File Explorer JS structure which prevented this custom-sort plugin from working.
2024-02-07 23:34:27 +01:00
SebastianMC a2a808e78b Two experimental features + version bump before release
- `aaa-z` and `a-zzz` sort orders (uppercase first, alphanumeric order and lowercase  first, alphanumeric)
- `vsc-unicode` sort order, which is equivalent to what VS Code refers to as 'unicode' sorting (which name is arbitrary and confusing, yet familar to VS Code users)
2024-01-27 23:25:59 +01:00
SebastianMC 8d5ca13acb #127 - folder and file with the same (base) name advanced sorting support:
- bugfix for `files-first` or `folders-first` sorting methods
2024-01-26 00:34:24 +01:00
SebastianMC 9cf01e9591 Merge branch 'master' into 127-folder-and-file-with-the-same-basename-sorting
# Conflicts:
#	src/custom-sort/sorting-spec-processor.spec.ts
2024-01-25 21:23:54 +01:00
SebastianMC e0208e2793 #126 - Allow escaping the . (dot) character to remove ambiguity with the ... wildcard
- simplistic implementation - use `./...` syntax to remove ambiguity of `....`
2024-01-25 20:54:15 +01:00
SebastianMC 958a9b017c #127 - folder and file with the same (base) name advanced sorting support:
- the last-resort default fallback sorting method (which was alphabetical) is extended to give preference to files. In other words, if all the specified sorting levels don't sort two items, the file goes first (if the other item is a folder)
- added explicit syntax to specify `files-first` or `folders-first`
2024-01-25 18:10:36 +01:00
SebastianMC f5fafc184f #126 - Allow escaping the . (dot) character to remove ambiguity with the ... wildcard
- naive implementation, the escape lexeme is \\DOT (problematic long term because of overlaps)
- naive implementation, the escape is transformed to simple-regexp (technically this is not needed at all)
2024-01-25 17:09:30 +01:00
SebastianMC 11d6623191 #123 - sorting by file basename by default (instead of fullname with ext)
- new syntax `a-z.` and `true a-z.` introduced to allow explicitly sorting by filename with ext
2024-01-25 10:47:05 +01:00
SebastianMC 3000da4edc Removed the unfinished partial implementation of overrideTitle functionality 2024-01-22 19:54:15 +01:00
SebastianMC 124c851989 #119 - Non-string value of sorting-spec: prevents the custom sorting from working w/o error message
- added a bit of defensive programming to fix the problem. The sorting spec with broken syntax is ignored (error is swallowed)
2023-12-14 17:28:22 +01:00
SebastianMC b5a9684f56 Removed console.log statements which slipped in 2.1.1
Version bump before release
2023-11-24 18:59:15 +01:00
SebastianMC 88327f6314 #115 - Add inline regex support to match capital letters and lowercase letters explicitly 2023-11-24 18:52:26 +01:00
SebastianMC b4d55c8b70 #111 - changed the sorting behavior for items with undefined attributes
- sorting by bookmarks, item w/o bookmark pushed to the bottom in both: asc and desc orders
- sorting by metadata, item w/o metadata pushed to the bottom in both, asc and desc orders
- sorting by creation or modification date, advanced mode: empty folders (or folders having only folder children) are pushed to the bottom, regardless of asc or desc order
2023-11-13 15:48:27 +01:00
SebastianMC 85d973e700 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- ready for release!
- finetuned context-menus for desktop and mobile
- more unit tests
2023-10-23 11:36:50 +02:00
SebastianMC 39d7591ac1 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- restructured the context menu to a single submenu of `Custom sort:` configurable in settings
2023-10-22 18:52:36 +02:00
SebastianMC 8e6c8ded98 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- minor bugfix - incorrect detection if an item is already bookmarked
2023-10-22 02:07:13 +02:00
SebastianMC e632808a2b Minor text adjustment in settings 2023-10-22 01:16:20 +02:00
SebastianMC fe4f28b46b
74 integration with bookmarks core plugin (#84)
* #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement

- added new plugin setting to enable auto-integration with bookmarks
- full integration with standard sorting at folder level and at sorting group level
- refined support for implicit sorting for bookmarks plugin integration
- documentation update (partial, sketchy)
- context menu for 'bookmark this' and 'bookmark+siblings' for sorting
- order of bookmarked siblings reflects the current sorting in File Explorer, whatever it is (!!!)
- handler for 'changed' event of the vault to reflect files/folders locations change in the bookmarks automatically, whenever applicable
- adjusted behavior of by-bookmark-comparator to adhere to the multi-level sorting support implemented in #89 and merged recently to this branch. Basically, each comparator is responsible only for its own comparison and should no fallback into other default comparisons - instead it should return 0, which indicates item which are equal from the perspective of the comparator
- adjusted bookmarks integration to the merged from master multi-level sorting support and its implications
- fix suggested by github code check
- advanced performance optimizations: bookmarks cache finetuning, switching to Obsidian sort code if the implicit bookmark-integration sorting spec is in effect for a folder and there are no bookmarked items in the folder
- update of treatment of whitespace in parent path extraction: spaces allowed as leading/trailing in path elements
- increased coverage of the new functionality with unit tests
- basic manual tests done
- next step: real-life usage tests
2023-10-21 23:16:30 +02:00
SebastianMC 23b50da6cf Bugfix for integration with other plugins.
Version bump for 1.9.2 release
2023-09-29 22:12:49 +02:00
SebastianMC 1811878249 Merge remote-tracking branch 'upstream/HEAD'
# Conflicts:
#	README.md
#	main.ts
#	manifest.json
2023-09-26 19:48:59 +02:00
SebastianMC 8197fca0f7 #89 - Support for multi-level sorting
- minor fix
2023-09-26 19:37:03 +02:00
SebastianMC 1f0baebc41 #89 - Support for multi-level sorting
- full runtime processor extension plus necessary syntax adjustments
- backward compatibility with semi-two-levels
- extended meaning of sorting: lexeme
- extended and more fine-grained error messages for sorting order specifications
2023-09-26 18:56:44 +02:00