| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- return {
- selector_cmd = function()
- return {
- command = "rofi",
- args = { "-dmenu", "-p", "Project: " },
- }
- end,
- editor_cmd = function(path, class)
- local dirName = path:match("([^/]+)$")
- -- Sanitize dirName for tmux session name (remove special chars)
- local tmuxSession = dirName:gsub("[^a-zA-Z0-9_]", "_")
- local tmuxCmd = string.format(
- [[ tmux has-session -t %s 2>/dev/null && tmux attach -t %s || tmux new -c %s -s %s 'nvim %s' \; split-window -h -c %s ]],
- tmuxSession,
- tmuxSession,
- path,
- tmuxSession,
- path,
- path
- )
- return {
- command = "kitty",
- args = {
- "-d",
- path,
- "-T",
- class,
- "--class",
- class,
- "sh",
- "-c",
- tmuxCmd,
- },
- }
- end,
- format_project_title = function(path)
- -- Extract project name for better display
- -- local projectName = path:match("([^/]+)$") or path
- return "📘 " .. path
- end,
- extract_path_from_title = function(title)
- -- Return back the path: 📘 work/project_1 -> work/project_1
- return title:gsub("^📘%s*", ""):gsub("\n$", "")
- end,
- -- Add error handling function
- handle_error = function(err)
- io.stderr:write("Error: " .. tostring(err) .. "\n")
- return false
- end,
- }
|