You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
xplr/docs/en/src/filtering.md

94 lines
2.2 KiB
Markdown

# Filtering
xplr supports filtering paths by different properties. The filtering mechanism
works like a pipeline, which in visible in the `Sort & filter` panel.
Example:
```
rel!^. [i]abs=~abc [i]rel!~xyz
```
This line means that the nodes visible on the table will first be filtered by
the condition: _relative path does not start with `.`_, then by the condition:
_absolute path contains `abc` (case insensitive)_, and finally by the
condition: _relative path does not contain `xyz`_ (case insensitive).
Each part of this pipeline is called [Node Filter Applicable][1].
## Node Filter Applicable
It contains the following information:
- [filter][2]
- [input][3]
### filter
A filter is a [sum type][5] that can be one of the following:
- "RelativePathIs"
- "RelativePathIsNot"
- "IRelativePathIs"
- "IRelativePathIsNot"
- "RelativePathDoesStartWith"
- "RelativePathDoesNotStartWith"
- "IRelativePathDoesStartWith"
- "IRelativePathDoesNotStartWith"
- "RelativePathDoesContain"
- "RelativePathDoesNotContain"
- "IRelativePathDoesContain"
- "IRelativePathDoesNotContain"
- "RelativePathDoesEndWith"
- "RelativePathDoesNotEndWith"
- "IRelativePathDoesEndWith"
- "IRelativePathDoesNotEndWith"
- "RelativePathDoesMatchRegex"
- "RelativePathDoesNotMatchRegex"
- "IRelativePathDoesMatchRegex"
- "IRelativePathDoesNotMatchRegex"
- "AbsolutePathIs"
- "AbsolutePathIsNot"
- "IAbsolutePathIs"
- "IAbsolutePathIsNot"
- "AbsolutePathDoesStartWith"
- "AbsolutePathDoesNotStartWith"
- "IAbsolutePathDoesStartWith"
- "IAbsolutePathDoesNotStartWith"
- "AbsolutePathDoesContain"
- "AbsolutePathDoesNotContain"
- "IAbsolutePathDoesContain"
- "IAbsolutePathDoesNotContain"
- "AbsolutePathDoesEndWith"
- "AbsolutePathDoesNotEndWith"
- "IAbsolutePathDoesEndWith"
- "IAbsolutePathDoesNotEndWith"
- "AbsolutePathDoesMatchRegex"
- "AbsolutePathDoesNotMatchRegex"
- "IAbsolutePathDoesMatchRegex"
- "IAbsolutePathDoesNotMatchRegex"
### input
Type: string
The input for the condition.
## Example:
```lua
ToggleNodeFilter = {
filter = "RelativePathDoesNotStartWith",
input = "."
}
```
Here, `ToggleNodeFilter` is a [message][4] that adds or removes
(toggles) the filter applied.
[1]: #node-filter-applicable
[2]: #filter
[3]: #input
[4]: message.md
[5]: sum-type.md