Commit Graph

38 Commits

Author SHA1 Message Date
SebastianMC 5304c9d601 Merge branch 'master' into 74-integration-with-bookmarks-core-plugin
# Conflicts:
#	src/custom-sort/custom-sort.ts
2023-06-30 19:30:59 +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 d32e71f064 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- singificants refactoring, compilable, basic functions work
2023-05-05 20:49:08 +02:00
SebastianMC 05fbb3f05e #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- minor code reformatting for easier diff & readability
2023-04-19 17:06:03 +02:00
SebastianMC 99afdebba8 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
Tons of updates:
- feature complete
  - context menu for 'bookmark this' and 'bookmark+siblings' for sorting
  - order of bookmarked siblings reflects the current sorting in File Explorer, whatever it is (!!!)
- unit tests probably missing for the additions
- list of TODO: updated in main.ts and other files inline
2023-04-19 16:59:35 +02:00
SebastianMC 71ab76652c #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
Tons of updates:
- 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)
2023-04-18 11:35:10 +02:00
SebastianMC cc73b4d3f1 #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- added new plugin setting to enable auto-integration with bookmarks
- not reviewed
- not tested
- no unit tests coverage
2023-04-12 12:47:45 +02:00
SebastianMC 56348006ce #74 - Integration with Bookmarks core plugin and support for indirect drag & drop arrangement
- feature code complete
- not reviewed
- not tested
- no unit tests coverage
2023-04-07 18:40:35 +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 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 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 f444614ddc #58 - Some target-folder: get ignored when sorting specs are read from two or more notes
- fixed the bug
2023-02-15 22:27:57 +01:00
SebastianMC 1cb8b2b05b Mobile-specific tweaks, e.g. new ribbon icon and documentation updates 2023-02-11 17:40:31 +01:00
SebastianMC 51733476e7 #50 - regexp and by-name matching support for target-folder
- more flexible syntax for target-folder modifiers: allow them in any order and also allow duplicates
2023-02-07 14:11:50 +01:00
SebastianMC afcb505633 #50 - regexp and by-name matching support for target-folder
- code readability (implicit structure turned into explicit interface)
2023-02-06 23:59:14 +01:00
SebastianMC ea018db574 #50 - regexp and by-name matching support for target-folder
- removed unused code
2023-02-06 23:42:56 +01:00
SebastianMC 8512f1b4cb #50 - regexp and by-name matching support for target-folder
- complete implementation
- full unit tests coverage
- NO update to documentation (yet to be done)
2023-02-06 23:38:27 +01:00
SebastianMC 0ba423ce4b #45 - Feature: explicit matching of 'starred' items
- new keyword added to support items starred with Obsidian core plugin 'Starred'
  - the keyword is `starred:`
- detection and more user friendly handling of the general error condition when the File Explorer is not available
  - new ribbon status icon shape to indicate the general error plus detailed error logged to the console
2023-01-03 19:09:37 +01:00
SebastianMC ec0049302b
32 feature: wider support of controlled regexp (#41)
#32 - Implementation completed with rich unit tests coverage.

- manual.md contains a simple example of the new feature
- support for undocumented `\[0-3]` for the requester of the feature ;-)
2022-12-18 19:59:58 +01:00
Sam Kvale 4c39f277c0
feat: Allow sortspec.md.md in addition to sortspec.md files (#38) 2022-12-05 16:05:42 +01:00
SebastianMC 84a5238814
#35 - Feature: combining of sorting rules (#36)
- full unit tests coverage of the new functionality
- refactor of the parser to allow more flexible syntax and be able to detect more errors
- introduced many new errors recognized by the parser
2022-11-29 11:17:02 +01:00
SebastianMC 581f5e9f36
#29 - Feature: priorities of sorting rules (#31)
- Implementation with full coverage of unit tests
- Documentation update with details about priorities (as an advanced feature, only in manual.md, not in README.md)
2022-11-29 10:17:15 +01:00
SebastianMC fabd586348
#23 feature request sorting notes with metadata (#26)
* #23 - support for sorting by metadata

- added support for grouping items by the presence of specified metadata
  - new keyword `with-metadata:` introduced for that purpose in lexer
  - if metadata field name is omitted, the default `sort-index-value` is used
- added support for sorting items by notes and folders metadata
  - new keyword 'by-metadata:' introduced for that purpose
  - if metadata field name is omitted, the default `sort-index-value` is used (or metadata name inheritance is used)
- unit tests of sorting spec processor extended accordingly
- documentation and code example in README.md 
- extended to also support true alphabetical on metadata fields
- release unnecessary references after sorting completed
2022-11-12 16:18:18 +01:00
SebastianMC 742bdf1b80 #27 - support for true alphabetical order
- added new token 'true a-z'
- unit tests coverage of the extended logic
- added example in README.md
2022-11-10 00:10:16 +01:00
SebastianMC 1915d59cf9 Sorting spec syntax refinement to allow one-liners like: sorting-spec: \< a-z 2022-10-07 12:02:16 +02:00
SebastianMC 4f0937c925 Removed the parser method prefixes like _l1s3_.... which were a residue of early development stage naming allowing clear ordering of these functions in the code. No longer needed 2022-09-29 19:18:52 +02:00
SebastianMC 72550fc01d 13 - Feature request: Sort by modification date, treating folder and files equally
- added unit tests coverage the logic of determining dates for folders
2022-09-26 19:00:23 +02:00
SebastianMC bfd093bbf2 13 - Feature request: Sort by modification date, treating folder and files equally
- added unit tests coverage for the extended sorting methods in sorting specification processor
2022-09-26 16:40:24 +02:00
SebastianMC 1b8e0878af 13 - Feature request: Sort by modification date, treating folder and files equally
- extended the advanced folder date handling also on the creation date
2022-09-26 16:18:35 +02:00
SebastianMC 2b77ce058d 13 - Feature request: Sort by modification date, treating folder and files equally
- finetuned the 'modified' sorting method - not the folders are ordered alphabetically, as the standard Obsidiand sort by 'modified date' does
- finetuned the 'created' sorting method in the same way as 'modified'
- added some initial content to syntax-reference.md ;-)
- extended the 'advanced modified' sorting method to also support the edge-case secondary sorting methods for groups
2022-09-25 22:50:27 +02:00
SebastianMC 5aed85c0bd 13 - Feature request: Sort by modification date, treating folder and files equally
- working solution - added new explicitly named sort method 'advanced modified' on top of 'modified'
- unit tests to be added before merge and release
2022-09-23 20:10:31 +02:00
SebastianMC c01d069829 Merge from upstream git@github.com:obsidianmd/obsidian-sample-plugin.git
- because of strict null check adjusted the code where necessary
2022-09-13 18:47:39 +02:00
SebastianMC 9962d9e76e Ticket #4: Feature Request: Activate / Deactivate Custom Sort through command
- added two new commands to enable/suspend the plugin
- intentionally put in the description convenient names: sort-on and sort-off
- code area was not covered by unit tests, not adding new one at this point (simple logic, fresh mind ;-)
2022-09-07 22:47:16 +02:00
SebastianMC d3e11708a4 Bug fix: when only files outsiders group was present, no catch-all outsiders group was added automatically. Same for folders-only outsiders group.
Cosmetics: wildcard patters for root like '/*' or '/...' produced a non matchable sort spec in the main sorting spec. The sort spec in wildcards tree was ok.
2022-09-05 10:52:02 +02:00
SebastianMC 5838a81b9c Ticket #1: added support for imposed sorting rules inheritance by subfolders
- bugfix: detection of duplicate specifications for the same folder across multiple (yaml) source files
2022-08-30 23:25:39 +02:00
SebastianMC e972bce007 Ticket #1: added support for imposed sorting rules inheritance by subfolders
- new syntax: target-folder: Reviews/*  <-- applies to folder, subfolders and all descendant folders
- new syntax: target-folder: Reviews/...  <-- applies to folder and subfolders
- special case: target-folder: /*  tells the plugin to apply the specified sorting to entire vault
- enhanced syntax for '.' - can be used to specify relative path now (e.g. target-folder: ./daily)
- added new sorting attribute (sorting: standard) to actually give back the sorting into the hands of standard Obsidian mechanisms
- fixed a minor bug: some of error messages were displayed only in console, not in the ballons
- unit tests for all new and changed functionality
- pending README.md update
2022-08-30 18:53:58 +02:00
SebastianMC 93daf529d3 First public release of the Obsidian custom sort plugin 2022-08-06 03:15:44 +02:00