mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2024-12-26 19:39:39 -08:00
55 lines
1.1 KiB
Go
55 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
type consoleTitle struct {
|
|
env environmentInfo
|
|
config *Config
|
|
ansi *ansiUtils
|
|
}
|
|
|
|
// ConsoleTitleStyle defines how to show the title in the console window
|
|
type ConsoleTitleStyle string
|
|
|
|
const (
|
|
// FolderName show the current folder name
|
|
FolderName ConsoleTitleStyle = "folder"
|
|
// FullPath show the current path
|
|
FullPath ConsoleTitleStyle = "path"
|
|
// Template allows a more powerful custom string
|
|
Template ConsoleTitleStyle = "template"
|
|
)
|
|
|
|
func (t *consoleTitle) getConsoleTitle() string {
|
|
var title string
|
|
switch t.config.ConsoleTitleStyle {
|
|
case FullPath:
|
|
title = t.getPwd()
|
|
case Template:
|
|
title = t.getTemplateText()
|
|
case FolderName:
|
|
fallthrough
|
|
default:
|
|
title = base(t.getPwd(), t.env)
|
|
}
|
|
title = t.ansi.escapeText(title)
|
|
return fmt.Sprintf(t.ansi.title, title)
|
|
}
|
|
|
|
func (t *consoleTitle) getTemplateText() string {
|
|
template := &textTemplate{
|
|
Template: t.config.ConsoleTitleTemplate,
|
|
Env: t.env,
|
|
}
|
|
return template.renderPlainContextTemplate(nil)
|
|
}
|
|
|
|
func (t *consoleTitle) getPwd() string {
|
|
pwd := t.env.getcwd()
|
|
pwd = strings.Replace(pwd, t.env.homeDir(), "~", 1)
|
|
return pwd
|
|
}
|