Plugin release: Vantage - Advanced search builder

I like the idea, but I think it’s out of scope for Vantage at the moment. Sorry!

(The plugin actually doesn’t handle the search or its results whatsoever. It merely generates useful queries in the right syntax.)

2 Likes

Sorry, yeah, I got that. I just meant: do all the tasks you’d want to find this way include a linked date?

Yes.

1 Like

Thank you for your response!

1 Like

@ryanjmurhpy, with the help of Vantage I managed to get a few things sorted out last night which get me a long way towards a workable solution. Once I get it done and run with it for a week or so, I’ll make sure to post about it somewhere.

Reminder of setup:

  • each project has a page
  • a project’s tasks are on that page, some of which are dated, some are not
  • there are 2 other pages for misc work and personal tasks
  • otherwise, tasks are nowhere else

Goal: Be able to query all tasks due today, or overdue.

Tracking page is @today. It has

    (/- \[ \].*2021-01-28.*/) 

A simple matter of updating the date each day.

When previewed, brings up all tasks that are dated today.

But what about yesterday and tasks I may have missed? There are 2 options here.

  1. Update the dates on all tasks from yesterday, then update date on query. Some due yesterday may not necessarily be due today so this is good discipline.
  2. Modify the query to
    (/- \[ \].*2021-01-2[78].*/) 

which will pull up yesterday and today (adjust to suit).

The building blocks are there.

Glad you’re making progress!

I could also make the date range query builder an option in the content section. That way you could use the plugin to search for “lines with links to yesterday or today” and it’ll generate e.g., line:(- [ ] [[2021-01-27]] [[2021-01-28]]). (Typing that on my phone, but you hopefully get the gist.)

2 Likes

Wow. Great! I’ll try it right now! Thank you, very much!

And yes, I struggled with the command palette as well. Would it be possible to place a button somewhere? I love buttons :smiley:

Thanks for reporting though—I’ll make a note to clarify how to access it in the readme.

Just for you: see the 1.1.0 release for a Vantage button in the app ribbon!

(Easy to do—should’ve provided it from the start. Sorry!)

Beautiful :clap: :clap: :clap:

Question: Can you suggest a way to hide the rather complicated search string at the top of the query result display? @ryanjamurphy

For sure.

Pretty sure this is all you need:

.internal-query-header-title {
    display: none;
}
3 Likes

HI. Maybe a stupid question: I use Obsidian on my 14’’ laptop, in which case the Vantage’s UI is beyond the edge of the screen. :joy: How can I make it adapt to the screen size?

1 Like

That’s a challenge I haven’t been able to figure out. Any suggestions? What would you cut or change?

I’m wondering if we could do something like this to display all overdue tasks, i.e. return every incomplete task that links to a daily note before today’s note. Seems like it would result in impossibly long queries unless there’s a more elegant way to define a range.

1 Like

I’ve been playing around with this. It’s tricky as my first attempt was successful at matching all dates.

I think you need something like I’ve posted earlier which works for 2021 dates only, up to today.

```query
line:(/- \[ \].*\[\[2021-02-2[0-8]\]\].*/)
```

For tomorrow, 1 March it would change to

```query
line:(/- \[ \].*\[\[2021-03-01\]\].*/)
```

The regex simply gets too complex for my understanding when you get to handling multiple years and then knowing you’re only up to Feb/March in the current year ie. how do you pick up 2019-12-14 in addition to 2021-02-28.

With the code above, I simply adjust for each day to move it forward. If I have a couple of days, I use an appropriate range.

1 Like

Version 1.2.0 (and 1.2.1), released today, allows you to add “NOT” tokens (e.g., -(some subquery) to your searches.

I haven’t added dates to the line searches yet. Trying to figure out ways of doing it while keeping the UI as compact as possible…

Hi Ryan,

thank you for your plugin.

with the current version, would you expect to be able to run a query that does NOT find a specific file, e.g. today’s daily note?

In my daily note template, I’m hoping to query all incomplete tasks from previous daily notes (e.g. containing 2021 in the title), but excluding today’s incomplete tasks.

query file:(2021) (line:(/- \[ \].*.*/)) -(file:{{title}})

thanks
tom

Please forgive my ignorance, but how does one go about downloading and installing plugins from github?

Any help would be appreciated
Thx

You can install it from the Community Plugins page.

Here’s how, if you don’t yet know

  1. open settings
  2. select image, browse and install “Vantage - Advanced search builder”
  3. scroll down and activate the plugin
  4. use the magnifying glass button on the ribbon left of screen to create your search image

Thanks @dryice . I didn’t realize it was on the community page. I do know how to do that. I thought I needed to get it from Github.

Hi- first time posting on this forum and new user so please be gentle :slight_smile:

Absolutely blown away with the power of Obsidian, especially when I found this plugin last night. It’s really helping me learn how to construct my own queries. Thank you so much!

However, I’m stuck…

I’m trying to pull through all unchecked todos from my daily notes, and like @dcb, I’m trying to avoid seeing todos scheduled for current day / future. I wondered if I could use the “yesterday” natural language to always pull through todos up to and including yesterday, rather than today, but it doesn’t look like that works.

Anyone found any way to do this that doesn’t involve entering in a “formal” date manually each day to specify the end of a date range?

Edited to add - my dailies file name format is YYYY-MM-DD. I note that the natural date format looks for DD-MM-YYYY. I’ve tried various combos such as searching by filename using * and also using the date range option:

Using file name search worked as requested in my query below (to find all unchecked todos in March), but the date range option appears to look for files in the DD-MM-YYYY format so returned no results in my case. (Just playing around with searching for dates; doesn’t tackle my “yesterday” request - but fun trying things out!)

file:("2021-03") path:(Dailies)  ((/- \[ \].*.*/))
file:(01-03-2021 OR 02-03-2021 OR 03-03-2021 OR 04-03-2021 OR 05-03-2021 OR 06-03-2021 OR 07-03-2021 OR 08-03-2021 OR 09-03-2021 OR 10-03-2021 OR 11-03-2021 OR 12-03-2021 OR 13-03-2021 OR 14-03-2021 OR 15-03-2021 OR 16-03-2021 OR 17-03-2021 OR 18-03-2021 OR 19-03-2021 OR 20-03-2021 OR 21-03-2021 OR 22-03-2021 OR 23-03-2021 OR 24-03-2021 OR 25-03-2021)  ((/- \[ \].*.*/))

So does this mean that if I use the date range option, it will never do as I want unless I change the format of my file names?

Many thanks

Apologies for the delayed response. I think you can do this with the following:

(file:(2021) -file:(202103)) (line:(/- \[ \].*.*/))

In other words, create an AND group with the first set of parentheses, then add the terms you want to search for and the ones you want to include within those.

So the above finds all files with 2021 in their names, but subtracts all files with filenames including 202103 (removing March from the query).

1 Like