-
Notifications
You must be signed in to change notification settings - Fork 1
resource filters
Martin Milan edited this page Jan 29, 2025
·
1 revision
Resource filters can be passed to some Foam commands to limit their scope.
A filter supports the following parameters:
-
tag
: include a resource if it has the given tag (e.g.{"tag": "#research"}
) -
type
: include a resource if it is of the given type (e.g.{"type": "daily-note"}
) -
path
: include a resource if its path matches the given regex (e.g.{"path": "/projects/*"}
). Note that this parameter supports regex and not globs. -
expression
: include a resource if it makes the given expressiontrue
, whereresource
represents the resource being evaluated (e.g.{"expression": "resource.type ==='weekly-note'"}
) -
title
: include a resource if the title matches the given regex (e.g.{"title": "Team meeting:*"}
)
A filter also supports some logical operators:
-
and
: include a resource if it matches all the sub-parameters (e.g{"and": [{"tag": "#research"}, {"title": "Paper *"}]}
) -
or
: include a resource if it matches any of the sub-parameters (e.g{"or": [{"tag": "#research"}, {"title": "Paper *"}]}
) -
not
: invert the result of the nested filter (e.g.{"not": {"type": "daily-note"}}
)
Here is an example of a complex filter, for example to show the Foam graph only of a subset of the workspace:
{
"key": "alt+f",
"command": "foam-vscode.show-graph",
"args": {
"filter": {
"and": [
{
"or": [
{ "type": 'daily-note' },
{ "type": 'weekly-note' },
{ "path": '/projects/*' },
],
"not": {
{ "tag": '#b' },
},
},
],
}
}
}