Commit Graph

234 Commits

Author SHA1 Message Date
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 d662c0225b Version bump for 1.9.0 release 2023-09-28 17:04:22 +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 f6ca4b7c4e Merge remote-tracking branch 'origin/master' 2023-09-26 18:57:20 +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
SebastianMC 95cd70360d
Update README.md
Updated link to wiki
2023-09-19 19:05:44 +02:00
SebastianMC 634d798b06
Update README.md
Link to wiki page updated
2023-09-19 19:03:55 +02:00
SebastianMC 085f5cc459
Update README.md
A typo
2023-09-19 18:58:33 +02:00
SebastianMC 2407520923
Update README.md
According to suggestions by [TheOneLight](https://github.com/TheOneLight) in [this discussion](https://github.com/SebastianMC/obsidian-custom-sort/discussions/95#discussioncomment-7048584)
- an example of Basic Scenario 2
- link to videos on editing multi-line properties
2023-09-19 18:57:36 +02:00
SebastianMC c5cd18f498 #89 - Support for multi-level sorting
- full runtime handling (application) of multi-level sorting
- full unit tests coverage of new functions
- metadata-based sorting extended to be applicable at each of sorting level, possibly with different metadata + full unit tests coverage
- having the run-time part ready, the missing part is the extending the sorting-spec-processor.ts
2023-09-19 15:34:39 +02:00
SebastianMC 24af493734 Support for implicit sorting specs - refined priorities of implicit vs explicit rules
- new unit tests cover the changes
2023-09-18 14:04:33 +02:00
SebastianMC 76ee3dfa62 #89 - Support for multi-level sorting
- fix in comparator by metadata to support multi-level sorting
- update of relevant existing unit tests
2023-08-29 00:17:58 +02:00
SebastianMC f72c4d61da #89 - Support for multi-level sorting
- removed unused imports
2023-08-29 00:12:06 +02:00
SebastianMC 8ea694fcf4 #89 - Support for multi-level sorting
- added run-time execution logic for multi-level sorting
- modified the sorter-by-metadata (required change for multi-level sorting)
- adjusted unit tests
- NO NEW UNIT TESTS
- no syntax added to support specification of multi-level (remains to be done)
2023-08-28 23:41:23 +02:00
SebastianMC 879c11b62f Introduction of 'overrideTitle' property for sorting group:
- sorting engine updated
- no dedicated syntax introduced, new feature used only in unit tests
- replaces the simplistic support for secondary sorting level for regexps
- unit tests
2023-08-25 19:10:38 +02:00
SebastianMC 2670cdb613 Fix for head tail regex match logic, when both regexp produce matching groups
- unit tests
2023-08-25 14:43:43 +02:00
SebastianMC 3cc58f69b9 Refactoring of internal processing context plus support for implicit sorting specs
- !!! NO UNIT TESTS ADDED - remember to do it
2023-08-24 11:18:22 +02:00
SebastianMC 45f5918598 Major improvement: added support for determining and applying sort order currently selected in Obsidian UI
- the meaning of CustomSortOrder.standardObsidian changes from a fixed one to what is actually selected in Obsidian UI
- the CustomSortOrder.standardObsidian can be applied at a folder level (as the default for folder) and at a group level (this is a major addition)
- added a mapping of Obsidian UI sorting methods onto internal plugin sorting methods, plus addition of the Obsidian UI logic to push folders to the top unconditionally
- !!! NO NEW UNIT TESTS FOR THIS FEATURE - must add later
- not tested manually, as the commits extraction and pushing is done as part of #88 github issue
2023-08-24 01:11:22 +02:00
SebastianMC 16f5d61818 Merge branch 'master' into 88-technical-aug-23-refactorings 2023-08-24 00:46:11 +02:00
SebastianMC 24355ff0a4 Bugfix in sorterByMetadataField - reverse order working correctly now
- fix in unit tests
2023-08-24 00:35:19 +02:00
SebastianMC b1f36156d1 Bugfix in sorterByMetadataField - reverse order working correctly now
- new unit tests
2023-08-24 00:28:24 +02:00
SebastianMC f48bc4d11f Simplification of this.app ==> app - this is a globally exposed object 2023-08-24 00:16:10 +02:00
SebastianMC 949b58b5ff Bugfix in sorterByMetadataField - reverse order working correctly now
- new unit tests
2023-08-24 00:15:32 +02:00
SebastianMC 24b37eb87c Bugfix in sorterByMetadataField - reverse order working correctly now
- new unit tests
2023-08-24 00:09:04 +02:00
SebastianMC e811d6d7e4 Simplification of this.app ==> app - this is a globally exposed object 2023-08-23 23:47:41 +02:00
SebastianMC 2d34813a3f Simplification of this.app ==> app - this is a globally exposed object 2023-08-23 23:45:30 +02:00
SebastianMC b752662d82 Simplification of this.app ==> app - this is a globally exposed object 2023-08-23 18:55:29 +02:00
Lishid 7112f01bc6
Update README.md 2023-07-25 15:17:26 -04:00
Johannes Theiner e8f03522bc
Adapt to plugin guidelines (#65)
- remove header in settings
- remove logging of changed settings value
2023-07-17 12:36:25 -04:00
Erica Xu 9be2b5d748
Update manifest.json 2023-07-11 11:37:36 -04:00
SebastianMC 150b864cae Version bump before release
- fixed the mess in manifest, package and version jsons :-|
2023-07-01 22:28:00 +02:00
SebastianMC 8e6ed50d9c Fixed JSON syntax error in versions.json 2023-06-30 19:34:32 +02:00
SebastianMC 4cd512799c Version bump before release 2023-06-30 19:08:17 +02:00
SebastianMC 037ada5a88
79 foldername variable support (#81)
* #79 - parent-folder-name variable support

- introductions of simplistic macros / templating support
- initially only one macro supported: {:%parent-folder-name%:}
  - macro expanded only for plain-text matching rules, ignored for regexp-based rules
  - for children of the root folder the macro is ignored
- unit tests for the new macros.ts
- unit tests for the testable part of updated custom-sort.ts
2023-06-30 19:05:29 +02:00
SebastianMC 5900452e8a Merge remote-tracking branch 'upstream/master' into merge-upstream-1
# Conflicts:
#	README.md
2023-06-28 19:38:41 +02:00
Alexander Pozdneev 2aee08d3d5
Remove old info about styles.css (#56) 2023-05-01 14:48:46 -04:00
SebastianMC 08ffd7db9a Versions bump before release 2023-04-03 19:17:10 +02:00
SebastianMC 7158e4b484
Merge pull request #73 from SebastianMC/72-advanced-sorting-by-creation-date-doesnt-work-correctly
#72 - Advanced sorting by creation date doesn't work correctly
2023-04-03 19:13:52 +02:00
SebastianMC aa31bee80c #72 - Advanced sorting by creation date doesn't work correctly
- bug fixed, the behavior of `< advanced created` sorting method corrected
- new unit tests to cover the scenario
2023-04-03 19:05:13 +02:00
SebastianMC 6298c08581 Merge remote-tracking branch 'origin/master' 2023-03-07 19:09:51 +01:00
SebastianMC c94b8d9315 Version bump before release 2023-03-07 19:09:35 +01:00
SebastianMC 68ef5f1869
Merge pull request #68 from SebastianMC/67-feature-alphabetic-wildcard
#67 - feature alphabetic wildcard
2023-03-07 19:07:22 +01:00
SebastianMC e788c92543 #67 - feature alphabetic wildcard
- sorting symbol \a+ for ASCII word
- sorting symbol \A+ for any modern language word (involved advanced unicode regexp)
2023-03-07 19:01:44 +01:00
SebastianMC fe68c554b8 Version bump before release 2023-03-01 11:04:46 +01:00
SebastianMC 63698cb2ed
Merge pull request #64 from SebastianMC/60-simplified-integration-with-obsidian-icon-folder
60 simplified integration with obsidian icon folder
2023-03-01 10:54:34 +01:00
SebastianMC bd875fa804 #60 - Simplified integration with obsidian-icon-folder plugin
- extended the parser with support of new lexeme with-icon:, with or w/o parameter
- unit tests
2023-03-01 10:42:35 +01:00
SebastianMC 01af14b174 #60 - Simplified integration with obsidian-icon-folder plugin
- the plugin integration and matching part completed
- unit tests
2023-02-28 23:57:08 +01:00
SebastianMC 18faf70b5e Documentation update - added mention of visual CSS-based separators by @replete 2023-02-15 23:41:08 +01:00