2.9 KiB
Node Types
This section defines how to deal with different kinds of nodes (files, directories, symlinks etc.) based on their properties.
One node can fall into multiple categories. For example, a node can have the
extension md
, and also be a file. In that case, the properties from
the more specific category i.e. extension will be used.
This can be configured using the xplr.config.node_types
Lua API.
xplr.config.node_types.directory.style
The style for the directory nodes
Type: Style
xplr.config.node_types.directory.meta.icon
Metadata for the directory nodes. You can set as many metadata as you want.
Type: nullable string
Example:
xplr.config.node_types.directory.meta.foo = "foo"
xplr.config.node_types.directory.meta.bar = "bar"
xplr.config.node_types.file.style
The style for the file nodes.
Type: Style
xplr.config.node_types.file.meta.icon
Metadata for the file nodes. You can set as many metadata as you want.
Type: nullable string
Example:
xplr.config.node_types.file.meta.foo = "foo"
xplr.config.node_types.file.meta.bar = "bar"
xplr.config.node_types.symlink.style
The style for the symlink nodes.
Type: Style
xplr.config.node_types.symlink.meta.icon
Metadata for the symlink nodes. You can set as many metadata as you want.
Type: nullable string
Example:
xplr.config.node_types.symlink.meta.foo = "foo"
xplr.config.node_types.symlink.meta.bar = "bar"
xplr.config.node_types.mime_essence
Metadata and style based on mime types.
It is possible to use the wildcard *
to match all mime sub types. It will
be overwritten by the more specific sub types that are defined.
Type: mapping of the following key-value pairs:
- key: string
- value:
- key: string
- value: Node Type
Example:
xplr.config.node_types.mime_essence = {
application = {
-- application/*
["*"] = { meta = { icon = "a" } },
-- application/pdf
pdf = { meta = { icon = "" }, style = { fg = "Blue" } },
-- application/zip
zip = { meta = { icon = ""} },
},
}
xplr.config.node_types.extension
Metadata and style based on extension.
Type: mapping of the following key-value pairs:
- key: string
- value: Node Type
Example:
xplr.config.node_types.extension.md = { meta = { icon = "" }, style = { fg = "Blue" } }
xplr.config.node_types.extension.rs = { meta = { icon = "🦀" } }
xplr.config.node_types.special
Metadata and style based on special file names.
Type: mapping of the following key-value pairs:
- key: string
- value: Node Type
Example:
xplr.config.node_types.special["Cargo.toml"] = { meta = { icon = "" } }
xplr.config.node_types.special["Downloads"] = { meta = { icon = "" }, style = { fg = "Blue" } }