mirror of https://github.com/sayanarijit/xplr
Document node types
parent
cdc1e6825b
commit
1f3d6f2152
@ -0,0 +1,146 @@
|
||||
Node Types
|
||||
==========
|
||||
|
||||
This configuration defines how to deal with different kinds of nodes (files,
|
||||
directories, symlinks etc.) in a directory.
|
||||
|
||||
This can be configured using the `xplr.config.node_types` Lua API.
|
||||
|
||||
It contains the following fields:
|
||||
|
||||
- [directory](#directory)
|
||||
- [file](#file)
|
||||
- [symlink](#symlink)
|
||||
- [mime_essence](#mime_essence)
|
||||
- [extension](#extension)
|
||||
- [special](#special)
|
||||
|
||||
One node can fall into multiple categories. For example, a node can have the
|
||||
extension `md`, and be a `file`. In that case, the properties from the more
|
||||
specific category i.e. extension will be used.
|
||||
|
||||
The priority is:
|
||||
|
||||
**special** > **extension** > **mime_essence** > **symlink** > **file** > **directory**
|
||||
|
||||
|
||||
### directory
|
||||
|
||||
Type: [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to directories are defined here.
|
||||
|
||||
Contains the following fields:
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.directory.meta.icon = ""
|
||||
xplr.config.node_types.directory.style.add_modifiers = { "Bold" }
|
||||
```
|
||||
|
||||
|
||||
### file
|
||||
|
||||
Type: [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to regular files are defined here.
|
||||
|
||||
Contains the following fields:
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.file.meta.icon = ""
|
||||
xplr.config.node_types.file.style.fg = "White"
|
||||
```
|
||||
|
||||
|
||||
### symlink
|
||||
|
||||
Type: [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to symlink are defined here.
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.symlink.meta.icon = ""
|
||||
xplr.config.node_types.symlink.style.add_modifiers = { "Italic" }
|
||||
```
|
||||
|
||||
|
||||
### mime_essence
|
||||
|
||||
Type: mapping of mime-type and mapping of mime-subtype and [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to files with specific mime types are defined here.
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.mime_essence = {
|
||||
application = {
|
||||
-- application/pdf
|
||||
pdf = { meta = { icon = "" } },
|
||||
|
||||
-- application/zip
|
||||
zip = { meta = { icon = ""} },
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
### extension
|
||||
|
||||
Type: mapping of extension and [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to files with specific extension are defined here.
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.extension.md = { meta = { icon = "" } }
|
||||
xplr.config.node_types.extension.rs = { meta = { icon = "🦀" } }
|
||||
```
|
||||
|
||||
### special
|
||||
|
||||
Type: mapping of name and [NodeType Config](#nodetype-config)
|
||||
|
||||
Properties related to files and directories with special names are defined
|
||||
here.
|
||||
|
||||
Example:
|
||||
|
||||
```lua
|
||||
xplr.config.node_types.special["Cargo.toml"] = { meta = { icon = "" } }
|
||||
xplr.config.node_types.special["Downloads"] = { meta = { icon = "" } }
|
||||
```
|
||||
|
||||
|
||||
NodeType Config
|
||||
---------------
|
||||
|
||||
A node-type config contains the following fields:
|
||||
|
||||
- [meta](#meta)
|
||||
- [style](style.md)
|
||||
|
||||
### meta
|
||||
|
||||
Type: mapping of string and string
|
||||
|
||||
A meta field can contain custom metadata about a node. By default, the "icon"
|
||||
metadata is set for the [directory](#directory), [file](#file), and
|
||||
[symlink](#symlink) nodes.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
xplr.config.node_types.file = {
|
||||
meta = {
|
||||
icon = "f",
|
||||
foo = "bar",
|
||||
}
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue