feat(main): properly apply input trimming
This commit is contained in:
parent
b03ad00b6a
commit
ae2172c8f2
12
README.md
12
README.md
|
@ -54,10 +54,16 @@ Using subtasks has two main advantages:
|
|||
- ability to accumulate time tracked
|
||||
- swiftly navigate between related tasks
|
||||
|
||||
Managing a project with subtasks makes it continuously visible,
|
||||
which is helpful if you want to be able to track time on the project itself
|
||||
without a specific task,
|
||||
Thus subtasks can be very useful for specific contexts,
|
||||
for example a project or a specific place.
|
||||
|
||||
On the other hand, related tasks like chores
|
||||
should be grouped with a tag instead.
|
||||
Similarly for projects which are only sporadically worked on
|
||||
when a specific task comes up, so they do not clutter the list.
|
||||
|
||||
### Collaboration
|
||||
|
||||
|
@ -86,7 +92,7 @@ To stop time-tracking completely, simply move to the root of all tasks.
|
|||
|
||||
`TASK` creation syntax: `NAME: TAG1 TAG2 ...`
|
||||
|
||||
- `TASK` - create task
|
||||
- `TASK` - create task (prefix with space if you want a task to start with a command character)
|
||||
- `.` - clear filters and reload
|
||||
- `.TASK`
|
||||
+ activate task by id
|
||||
|
@ -96,7 +102,7 @@ To stop time-tracking completely, simply move to the root of all tasks.
|
|||
- `/[TEXT]` - like `.`, but never creates a task
|
||||
- `|[TASK]` - (un)mark current task as procedure or create and activate a new task procedure (where subtasks automatically depend on the previously created task)
|
||||
|
||||
Dots can be repeated to move to parent tasks.
|
||||
Dots and slashes can be repeated to move to parent tasks.
|
||||
|
||||
- `:[IND][COL]` - add property column COL at IND or end, if it already exists remove property column COL or IND (1-indexed)
|
||||
- `*[TIME]` - add timetracking with the specified offset (empty: list tracked times)
|
||||
|
@ -105,7 +111,7 @@ Dots can be repeated to move to parent tasks.
|
|||
- `!TEXT` - set state for current task from text
|
||||
- `,TEXT` - add text note (comment / description)
|
||||
- `@` - undoes last action (moving in place or upwards or waiting a minute confirms pending actions)
|
||||
- `wss://...` - switch or subscribe to relay
|
||||
- `wss://...` - switch or subscribe to relay (prefix with space to forcibly add a new one)
|
||||
|
||||
Property Filters:
|
||||
|
||||
|
|
11
src/main.rs
11
src/main.rs
|
@ -284,8 +284,7 @@ async fn main() {
|
|||
if remaining.is_empty() {
|
||||
tasks.remove_column(index);
|
||||
} else {
|
||||
let value = input[2..].trim().to_string();
|
||||
tasks.add_or_remove_property_column_at_index(value, index);
|
||||
tasks.add_or_remove_property_column_at_index(remaining, index);
|
||||
}
|
||||
} else if let Some(arg) = arg {
|
||||
tasks.add_or_remove_property_column(arg);
|
||||
|
@ -403,7 +402,8 @@ async fn main() {
|
|||
dots += 1;
|
||||
pos = tasks.get_parent(pos).cloned();
|
||||
}
|
||||
let slice = &input[dots..];
|
||||
let slice = input[dots..].trim();
|
||||
|
||||
tasks.move_to(pos);
|
||||
if slice.is_empty() {
|
||||
if dots > 1 {
|
||||
|
@ -423,7 +423,8 @@ async fn main() {
|
|||
dots += 1;
|
||||
pos = tasks.get_parent(pos).cloned();
|
||||
}
|
||||
let slice = &input[dots..].to_ascii_lowercase();
|
||||
let slice = &input[dots..].trim().to_ascii_lowercase();
|
||||
|
||||
if slice.is_empty() {
|
||||
tasks.move_to(pos);
|
||||
} else if let Ok(depth) = slice.parse::<i8>() {
|
||||
|
@ -447,7 +448,7 @@ async fn main() {
|
|||
}
|
||||
|
||||
_ =>
|
||||
if Regex::new("^wss?://").unwrap().is_match(&input) {
|
||||
if Regex::new("^wss?://").unwrap().is_match(&input.trim()) {
|
||||
tasks.move_to(None);
|
||||
let mut new_relay = relays.keys().find(|key| key.as_str().starts_with(&input)).cloned();
|
||||
if new_relay.is_none() {
|
||||
|
|
Loading…
Reference in New Issue