- Update extension homepage from github.com/mihaiconstantin/bujo to bujo.mihaiconstantin.com.
- Add correct links to snippets reference in the guide pages.
- Add
.github
workflow for building documentation website. - Add extension documentation via
VuePress
at bujo.mihaiconstantin.com. Closes #14. - Add functionality to schedule
BuJo
entries to time tracking tables via theBuJo: Schedule Entry
command. Closes #8. - Add functionality for time tracking for
BuJo
entries via theBuJo: Record Time
command. Closes #6. - Add functionality to calculate the total time spent on a task for
BuJo
entries scheduled to the time tracking table via the commandBuJo: Calculate Entry Time
. Closes #7. - Add default keybindings scheduling and time tracking commands:
alt+shift+p
to run commandBuJo: Schedule Entry
alt+shift+t
to run commandBuJo: Record Time
alt+shift+s
to run commandBuJo: Calculate Entry Time
- Add user settings for customizing the scheduling and time tracking behavior:
bujo.scheduler.plannerPrefix
to specify the prefix to use when selecting the daily planner file via the input box (e.g.,prefix
.2022.03.20
)bujo.scheduler.taskName
to specify what to use as task name for the time tracking table when scheduling aBuJo
entry that contains a wiki link with an alias (e.g.,[[A random task|project.example.a-random-task]]
:alias
sets the name of the task in the table to wiki link alias (e.g.,A random task
)filename
sets the name of the task to the actual wiki link (e.g.,[[project.example.a-random-task]]
)
bujo.scheduler.symbolForScheduledEntry
to specify the symbol to set for aBuJo
entry scheduled to the time track table (i.e., by default, the symbol is updated from[ ]
to[>]
)
- Add
genUUID
andgenUUIDInsecure
helper functions to generate Dendron-compatible blockquote IDs for schedulingBuJo
entries to the time tracking table. - Add essential documentation in
README.md
for new changes. Closes #12.
-
Switched from
esbuild
towebpack
for bundling extension source files. -
Simplify
README.md
file to point to the new documentation. Closes #12. -
Refactor
Entry
class into multiple classes, each corresponding to a type of functionality:Scheduler
class for handling scheduling operationSymbol
class for handling entry symbol updatesTracker
andInterval
classes for handling time tracking and time totals
-
Move most of the regular expressions to the
Pattern
class and add demonstration links toregex101.com
to improve debugging ofregex
. -
Create
operations
module that contains functions and wrappers to use in the context of the command palette, e.g.:// Import the module. import * as operations from "./operations"; // The module currently contains `symbol`, `scheduler` and `tracker` commands. // ... vscode.commands.registerCommand('bujo.scheduler.scheduleEntry', operations.scheduler.scheduleEntry) // ...
-
Create
helpers
module for small functions used in various places. -
Update the functions within the operations module to use new classes.
-
Rename several commands to maintain consistency with the
operations
module:- from
bujo.setMigratedForward
tobujo.symbol.setMigratedForward
- from
bujo.setMigratedBackward
tobujo.symbol.setMigratedBackward
- from
bujo.setCompleted
tobujo.symbol.setCompleted
- from
bujo.setOpen
tobujo.symbol.setOpened
- from
bujo.setInProgress
tobujo.symbol.setStarted
- from
bujo.setDropped
tobujo.symbol.setDropped
- from
bujo.setSymbol
tobujo.symbol.setSymbol
- from
bujo.scheduleToTimeTrackingTable
tobujo.scheduler.scheduleEntry
- from
bujo.recordTime
tobujo.tracker.recordTime
- from
bujo.calculateTime
tobujo.tracker.calculateEntryTime
- from
-
Add syntax highlighting support for multiple entries on the same line separated by a
|
character:- e.g.,
[ ] Task one | [ ] ! Task two | [x] Task three
- e.g.,
-
Add greater flexibility with respect to where a supported modifier can be placed. All of the following are correctly identified and parsed as valid entries:
[ ] ! Some task
[ ]! Some task
[ ] !Some task
[ ]!Some task
-
Add commands to the command palette (i.e.,
ctrl/cmd + shift + p
) to change the symbol for the first entry on the line where the cursor is placed. The following commands are available:BuJo: Set Migrated Forward
to set[>]
BuJo: Set Migrated Backward
to set[<]
BuJo: Set Completed
to set[x]
BuJo: Set Open
to set[ ]
BuJo: Set In Progress
to set[/]
BuJo: Set Dropped
to set[-]
-
Add functionality to update entry symbols via arbitrary keybindings that can also pass the symbol to be set as argument. For instance, the following keybinding when triggered will update the task status to
[x]
, and toggle between[x]
and[ ]
on subsequent triggers:[ // ... { "key": "alt+x", "command": "bujo.setSymbol", "args": { "symbol": "x" }, "when": "editorTextFocus && editorLangId == markdown" } // ... ]
-
Add default keybindings for changing entry symbols:
alt+x
to toggle between[x]
and[ ]
alt+o
to set[ ]
alt+-
to toggle between[-]
and[ ]
alt+/
to toggle between[/]
and[ ]
alt+,
to toggle between[<]
and[ ]
alt+.
to toggle between[>]
and[ ]
alt+p
to toggle between[o]
and[ ]
-
Add various snippets for BuJo elements:
-
task
to enter a task- [ ] <Enter text here>
-
taskclip
to enter a task from clipboard- [ ] <Clipboard pasted here>
-
scratch
to scratch a text selection~Some text~
-
time
to enter the current time10:38
-
date
to enter the current date2022.04.24
-
datetime
to enter the current date and time2022.04.24 10:39
-
timetracktable
to enter a time tracking table| Tracker | Task | Backlog | | ----------: | :--------------- | :------- | | 00:00-00:00 | [ ] Example task | [[link]] | | | | |
-
timetrackrow
to add an empty row to the time tracking table| | | |
-
timetracktask
to enter a task in the time tracking table| | [ ] <Enter here> | |
-
timetracktaskclip
to enter a task from clipboard in the time tracking table| | [ ] <Clipboard> | |
-
timeblocktable
to enter a time blocking table| Time | Block | | ----------: | :------------- | | (00:00) | (Revision \#1) | | | | | 00:00-00:00 | Chunk (#1) | | | - Chunk note | | | |
-
timeblockrow
to add an empty row to the time blocking table| | |
-
timeblockrev
to enter a revision row in the time blocking table| (10:53) | (Revision \#1) |
-
timeblockchunk
to enter a chunk row in the time blocking table| 00:00-00:00 | <Enter here> |
-
timeblocknote
to enter a note row in the time blocking table| | - <Add here> |
-
-
Add way to highlight the time separator (i.e.,
-
) in a time tracking table also only the start time of a task is recorded (i.e.,-
will get matched also in00:00-
, and not only00:00-00:00
; see https://regex101.com/r/36951B/6).
- Improve
regex
for matching Bullet Journal entries (i.e., moved from https://regex101.com/r/ByIG8W/20 to https://regex101.com/r/LVVrrS/26). - Improve matching performance for Bullet Journal entries.
- Update
README.md
to reflect the new features.
- Update
regex
for markdown table grids to select|
only when they are part of a markdown table grid (i.e., https://regex101.com/r/91IC8c/5). - Fix headings in
CHANGELOG.md
for previous releases.
- Time tracking scopes (i.e.
bujo.todo.*
will be renamed tobujo.timetrack.*
in the future. For now, no changes need to be made. Below you can see the entire list of scopes that will be affected:- to be renamed from
bujo.todo.start.hour
tobujo.timetrack.start.hour
- to be renamed from
bujo.todo.start.colon
tobujo.timetrack.start.colon
- to be renamed from
bujo.todo.start.minute
tobujo.timetrack.start.minute
- to be renamed from
bujo.todo.separator
tobujo.timetrack.separator
- to be renamed from
bujo.todo.end.hour
tobujo.timetrack.end.hour
- to be renamed from
bujo.todo.end.colon
tobujo.timetrack.end.colon
- to be renamed from
bujo.todo.end.minute
tobujo.timetrack.end.minute
- to be renamed from
bujo.todo.total
tobujo.timetrack.total
- to be renamed from
- Improved
README.md
text and images presentation. - Update extension name and description.
- Remove language grammar identifiers in
package.json
.
- Add scope for
*
modifier. - Add scope for
:
in horizontal table grids. - Add scopes for time blocking syntax.
- Add scopes for time tracking syntax.
- Add default colors via
contributes.configurationDefaults
point inpackage.json
.
- Update regular expressions for more precise matching.
- Simplify
TextMate
scopes for Bullet Journal items. - Improve
README.md
documentation.
- Drop scopes for each modifier. Currently, all supported modifiers fall under the same scope.
- Add two new tokens
bujo.horizontal.grid
andbujo.vertical.grid
for selecting grids in markdown tables (i.e., the:---:
,:---
, or---:
for horizontal grid, and the|
for vertical grid).
- Added
TextMate
scopes for standard Bullet Journal symbols[ ]
task[x]
completed task[>]
migrated forward task[<]
migrated backward task[o]
event
- Added
TextMate
scopes for two modifiers!
and?