sessionizer/schema_builder.lua
2025-07-17 12:14:24 -04:00

79 lines
1.6 KiB
Lua

local plugin = require("wezterm.plugin")
return plugin.with_schema({
name = "sessionizer",
description = "Project-based sessionizer plugin for WezTerm",
parameters = {
projects = {
description = "List of project base directories and their max depth.",
type = "array",
default = {},
example = {
{ path = "~/projects", max_depth = 3 },
{ path = "~/work", max_depth = 2 },
},
items = {
oneOf = {
{ type = "string" },
{
type = "object",
properties = {
path = {
description = "Path to the base directory.",
type = "string",
},
max_depth = {
description = "Maximum recursive search depth.",
type = "integer",
default = 3,
},
},
required = { "path" },
},
},
},
},
exclude_dirs = {
description = "Directory names to exclude from scanning.",
type = "array",
items = { type = "string" },
default = {
".git",
"node_modules",
".vscode",
".svn",
".hg",
".idea",
".DS_Store",
"__pycache__",
"target",
"build",
},
},
default_depth = {
description = "Default maximum depth for directory scanning.",
type = "integer",
default = 3,
},
key = {
description = "Key to trigger the session switcher (default: 'f')",
type = "string",
default = "f",
},
mods = {
description = "Modifier keys to trigger the switcher (default: 'LEADER')",
type = "string",
default = "LEADER",
},
add_to_launch_menu = {
description = "Whether to append scanned workspaces to the launch menu.",
type = "boolean",
default = false,
},
},
})