fix: prevent freeze when opening config with 'o' key

Use non-blocking cmd.Start() with goroutine for Wait() instead of
synchronous RunCommand() in OpenFile and OpenLink methods.
Fixes jesseduffield/lazydocker#688
This commit is contained in:
Stanislav Chernov 2026-02-20 23:11:53 +03:00
parent 577797d9ed
commit 38721df853

View file

@ -161,8 +161,12 @@ func (c *OSCommand) OpenFile(filename string) error {
}
command := utils.ResolvePlaceholderString(commandTemplate, templateValues)
err := c.RunCommand(command)
return err
cmd := c.ExecutableFromString(command)
if err := cmd.Start(); err != nil {
return err
}
go cmd.Wait()
return nil
}
// OpenLink opens a file with the given
@ -173,8 +177,12 @@ func (c *OSCommand) OpenLink(link string) error {
}
command := utils.ResolvePlaceholderString(commandTemplate, templateValues)
err := c.RunCommand(command)
return err
cmd := c.ExecutableFromString(command)
if err := cmd.Start(); err != nil {
return err
}
go cmd.Wait()
return nil
}
// EditFile opens a file in a subprocess using whatever editor is available,