Search Syntax - display task notes?


#1

Is there a way in TP3 to conduct a search (e.g., @wait) and have the notes for each of the tasks be displayed immediately under the tasks themselves (as they do in the unfiltered, non-searched TP interface) in the filtered list of tasks? I put important information in task notes, such as the mail:// URL to an email message I need to respond to, http:// URL to a web page I need to read, etc., and I’d like to be able to see those in my search filtered list. I’ve reviewed the syntax documentation and google-ed quite extensively, but nothing is coming up.

Thanks!


Posts moved from TaskPaper extensions Wiki
#2

I think what you want is:

@wait//*

#3

Thanks Jesse. This is the hint I needed to get things going. One downfall of @wait//* (at least that I experienced) was that tasks without notes did not display. I did some additional tweaking, after reading your syntax documentation, and came up with the following syntax that shows tasks with or without notes and excludes @done tasks. I threw in the union example in case it helps someone else in the future trying to do something similar.

(not @done and @wait = Andy/descendant-or-self::) union (not @done and @agenda = Andy/descendant-or-self::)

Thanks again, and I hope this helps someone else!


#4

Could well be that I am mistaking the structure of your data, but I wonder whether you could use:

(@wait or @agenda)/descendant-or-self::*

or

((@wait or @agenda) and not @done)/descendant-or-self::*

etc

and if the (not @done) @wait or @agenda items may have some descendants which themselves could already be @done, and which you might wish to tidy out of the filter results, perhaps:

((@wait or @agenda) and not @done)/descendant-or-self::(not @done)

?

or, closer to the example you have given,

(@wait=Andy or @agenda=Andy)/descendant-or-self::*

etc etc


#5

Ahh yes, that’s much more elegant. Thanks! I assume the second to last example you provide should remove any subtasks that are flagged as @done? If so, for some reason, it’s not working for me:

  • test ajk with notes and subtasks @agenda(Andy)
    this is a note
    • test ajk first subtask with notes and done @done(2016-01-20) @agenda(Andy)
      this is a subtask done note
    • test ajk subtask with notes
      this is a subtask active note

When I search using:

((@wait=Andy or @agenda=Andy) and not @done)/descendant-or-self::(not @done)

the subtask “test ajk first subtask with notes and done” still shows up. Thanks again @complexpoint!


#6

You may have to hit return again in the search field if you have updated an incumbent query

Here, with

- test ajk with notes and subtasks @agenda(Andy)
	this is a note
- test ajk first subtask with notes and done @done(2016-01-20) @agenda(Andy)
	this is a subtask done note
- test ajk subtask with notes
	 this is a subtask active note
	- alpha
	- beta
			- two  @done
				notes of some kind here and there @done
		- eta
	- delta

and applying:

((@wait or @agenda) and not @done)/descendant-or-self::(not @done)

I am seeing:

- test ajk with notes and subtasks @agenda(Andy)
	this is a note

#7

I double checked and it’s not an incumbent query problem. if you indent the second task “test ajk first subtask with notes and done @done(2016-01-20) @agenda(Andy)” under the first task, does your results behave as you expected? In mine, that (now) indented task continues to show up in the search results even though it is flagged as @done. It could be I’m likely misunderstanding the hierarchy of the search.

Thanks for your time helping with this. I don’t use indented subtasks too much, so it’s not that big of a deal if I can’t get it to work.


#8

It’s being shown as the parental context of a match:

  1. its child note is not done
  2. when any item is matched, we are shown the path to that item, as well as the matching item itself

#9

I understand. I was under the (incorrect) assumption that attribute filtering only applied to projects and tasks and were ignored for notes. Thanks for clearing that up!


#10

If you want to be more fine-grained than that, of course, you can – using filters involving:

@type=project
@type=task
@type=note