mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2025-02-21 02:55:37 -08:00
parent
e4319b9584
commit
8dcd200e3e
|
@ -356,9 +356,16 @@ func (env *ShellEnvironment) HasFiles(pattern string) bool {
|
|||
env.log(Error, "HasFiles", err.Error())
|
||||
return false
|
||||
}
|
||||
hasFiles := len(matches) > 0
|
||||
env.debugF("HasFiles", func() string { return strconv.FormatBool(hasFiles) })
|
||||
return hasFiles
|
||||
for _, match := range matches {
|
||||
f, _ := os.Stat(match)
|
||||
if f.IsDir() {
|
||||
continue
|
||||
}
|
||||
env.log(Debug, "HasFiles", "true")
|
||||
return true
|
||||
}
|
||||
env.log(Debug, "HasFiles", "false")
|
||||
return false
|
||||
}
|
||||
|
||||
func (env *ShellEnvironment) HasFilesInDir(dir, pattern string) bool {
|
||||
|
@ -397,10 +404,13 @@ func (env *ShellEnvironment) HasFileInParentDirs(pattern string, depth uint) boo
|
|||
|
||||
func (env *ShellEnvironment) HasFolder(folder string) bool {
|
||||
defer env.trace(time.Now(), "HasFolder", folder)
|
||||
_, err := os.Stat(folder)
|
||||
hasFolder := !os.IsNotExist(err)
|
||||
env.debugF("HasFolder", func() string { return strconv.FormatBool(hasFolder) })
|
||||
return hasFolder
|
||||
f, err := os.Stat(folder)
|
||||
if err != nil {
|
||||
env.log(Debug, "HasFolder", "false")
|
||||
return false
|
||||
}
|
||||
env.debugF("HasFolder", func() string { return strconv.FormatBool(f.IsDir()) })
|
||||
return f.IsDir()
|
||||
}
|
||||
|
||||
func (env *ShellEnvironment) ResolveSymlink(path string) (string, error) {
|
||||
|
|
|
@ -17,7 +17,8 @@ func (d *Dart) Init(props properties.Properties, env environment.Environment) {
|
|||
d.language = language{
|
||||
env: env,
|
||||
props: props,
|
||||
extensions: []string{"*.dart", "pubspec.yaml", "pubspec.yml", "pubspec.lock", ".dart_tool"},
|
||||
extensions: []string{"*.dart", "pubspec.yaml", "pubspec.yml", "pubspec.lock"},
|
||||
folders: []string{".dart_tool"},
|
||||
commands: []*cmd{
|
||||
{
|
||||
executable: "dart",
|
||||
|
|
|
@ -58,6 +58,7 @@ type language struct {
|
|||
props properties.Properties
|
||||
env environment.Environment
|
||||
extensions []string
|
||||
folders []string
|
||||
commands []*cmd
|
||||
versionURLTemplate string
|
||||
exitCode int
|
||||
|
@ -89,11 +90,14 @@ const (
|
|||
HomeEnabled properties.Property = "home_enabled"
|
||||
// LanguageExtensions the list of extensions to validate
|
||||
LanguageExtensions properties.Property = "extensions"
|
||||
// LanguageFolders the list of folders to validate
|
||||
LanguageFolders properties.Property = "folders"
|
||||
)
|
||||
|
||||
func (l *language) Enabled() bool {
|
||||
// override default extensions if needed
|
||||
l.extensions = l.props.GetStringArray(LanguageExtensions, l.extensions)
|
||||
l.folders = l.props.GetStringArray(LanguageFolders, l.folders)
|
||||
inHomeDir := func() bool {
|
||||
return l.env.Pwd() == l.env.Home()
|
||||
}
|
||||
|
@ -113,11 +117,11 @@ func (l *language) Enabled() bool {
|
|||
case DisplayModeEnvironment:
|
||||
enabled = l.inLanguageContext()
|
||||
case DisplayModeFiles:
|
||||
enabled = l.hasLanguageFiles()
|
||||
enabled = l.hasLanguageFiles() || l.hasLanguageFolders()
|
||||
case DisplayModeContext:
|
||||
fallthrough
|
||||
default:
|
||||
enabled = l.hasLanguageFiles() || l.inLanguageContext()
|
||||
enabled = l.hasLanguageFiles() || l.hasLanguageFolders() || l.inLanguageContext()
|
||||
}
|
||||
}
|
||||
if !enabled || !l.props.GetBool(properties.FetchVersion, true) {
|
||||
|
@ -130,18 +134,22 @@ func (l *language) Enabled() bool {
|
|||
return enabled
|
||||
}
|
||||
|
||||
// hasLanguageFiles will return true at least one file matching the extensions is found
|
||||
func (l *language) hasLanguageFiles() bool {
|
||||
for i, extension := range l.extensions {
|
||||
for _, extension := range l.extensions {
|
||||
if l.env.HasFiles(extension) {
|
||||
break
|
||||
}
|
||||
if i == len(l.extensions)-1 {
|
||||
return false
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
func (l *language) hasLanguageFolders() bool {
|
||||
for _, folder := range l.folders {
|
||||
if l.env.HasFolder(folder) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// setVersion parses the version string returned by the command
|
||||
|
|
|
@ -27,7 +27,8 @@ func (p *Python) Init(props properties.Properties, env environment.Environment)
|
|||
p.language = language{
|
||||
env: env,
|
||||
props: props,
|
||||
extensions: []string{"*.py", "*.ipynb", "pyproject.toml", "venv.bak", "venv", ".venv"},
|
||||
extensions: []string{"*.py", "*.ipynb", "pyproject.toml", "venv.bak"},
|
||||
folders: []string{".venv", "venv", "virtualenv", "env", "venv-win", "pyenv-win"},
|
||||
loadContext: p.loadContext,
|
||||
inContext: p.inContext,
|
||||
commands: []*cmd{
|
||||
|
|
Loading…
Reference in a new issue