Fix to set the application CWD to the HOME directory (#122)

This commit is contained in:
akiyosi 2020-06-06 22:33:04 +09:00
parent 2c24538941
commit 2307784a46
3 changed files with 30 additions and 13 deletions

View file

@ -11,6 +11,7 @@ import (
"strings" "strings"
"sync" "sync"
"github.com/akiyosi/goneovim/util"
frameless "github.com/akiyosi/goqtframelesswindow" frameless "github.com/akiyosi/goqtframelesswindow"
clipb "github.com/atotto/clipboard" clipb "github.com/atotto/clipboard"
"github.com/jessevdk/go-flags" "github.com/jessevdk/go-flags"
@ -188,6 +189,19 @@ func InitEditor() {
e.cleanup() e.cleanup()
}) })
// Set the current working directory of the application to the HOME directory.
// If this process is not executed, CWD is set to the root directory, and
// nvim plugins called as descendants of the application will not work due to lack of permission.
// e.g. #122
path := core.QCoreApplication_ApplicationDirPath()
absHome, err := util.ExpandTildeToHomeDirectory(home)
if err == nil {
if path != absHome {
qdir := core.NewQDir2(path)
qdir.SetCurrent(absHome)
}
}
e.initFont() e.initFont()
e.initSVGS() e.initSVGS()
e.initColorPalette() e.initColorPalette()

View file

@ -308,7 +308,7 @@ func (s *Fuzzy) processSource() {
if !ok { if !ok {
s.pwd = "" s.pwd = ""
} }
path, err := expand(s.pwd) path, err := gonvimUtil.ExpandTildeToHomeDirectory(s.pwd)
if err == nil { if err == nil {
s.pwd = path s.pwd = path
} }
@ -326,7 +326,7 @@ func (s *Fuzzy) processSource() {
if !ok { if !ok {
dir = "" dir = ""
} }
path, err := expand(dir) path, err := gonvimUtil.ExpandTildeToHomeDirectory(dir)
if err == nil { if err == nil {
dir = path dir = path
} }
@ -765,14 +765,3 @@ func insertAtIndex(in string, i int, newChar string) string {
// return int(iface.(uint64)) // return int(iface.(uint64))
// } // }
func expand(path string) (string, error) {
if len(path) == 0 || path[0] != '~' {
return path, nil
}
usr, err := user.Current()
if err != nil {
return "", err
}
return filepath.Join(usr.HomeDir, path[1:]), nil
}

View file

@ -2,6 +2,8 @@ package util
import ( import (
"strings" "strings"
"os/user"
"path/filepath"
"github.com/therecipe/qt/core" "github.com/therecipe/qt/core"
"github.com/therecipe/qt/gui" "github.com/therecipe/qt/gui"
@ -268,3 +270,15 @@ func NewVFlowLayout(spacing int, padding int, paddingTop int, rightIdex int, wid
}) })
return layout return layout
} }
func ExpandTildeToHomeDirectory(path string) (string, error) {
if len(path) == 0 || path[0] != '~' {
return path, nil
}
usr, err := user.Current()
if err != nil {
return "", err
}
return filepath.Join(usr.HomeDir, path[1:]), nil
}