config

package
v0.25.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 23, 2021 License: MIT Imports: 6 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConfigDir added in v0.23.1

func ConfigDir() string

func LogPath added in v0.23.1

func LogPath() (string, error)

Types

type AppConfig

type AppConfig struct {
	Debug          bool   `long:"debug" env:"DEBUG" default:"false"`
	Version        string `long:"version" env:"VERSION" default:"unversioned"`
	Commit         string `long:"commit" env:"COMMIT"`
	BuildDate      string `long:"build-date" env:"BUILD_DATE"`
	Name           string `long:"name" env:"NAME" default:"lazygit"`
	BuildSource    string `long:"build-source" env:"BUILD_SOURCE" default:""`
	UserConfig     *UserConfig
	UserConfigDir  string
	UserConfigPath string
	AppState       *AppState
	IsNewRepo      bool
}

AppConfig contains the base configuration fields required for lazygit.

func NewAppConfig added in v0.1.65

func NewAppConfig(name, version, commit, date string, buildSource string, debuggingFlag bool) (*AppConfig, error)

NewAppConfig makes a new app config

func NewDummyAppConfig added in v0.23.1

func NewDummyAppConfig() *AppConfig

NewDummyAppConfig creates a new dummy AppConfig for testing

func (*AppConfig) ConfigFilename added in v0.23.1

func (c *AppConfig) ConfigFilename() string

ConfigFilename returns the filename of the current config file

func (*AppConfig) GetAppState added in v0.2.0

func (c *AppConfig) GetAppState() *AppState

GetAppState returns the app state

func (*AppConfig) GetBuildDate

func (c *AppConfig) GetBuildDate() string

GetBuildDate returns debug flag

func (*AppConfig) GetBuildSource added in v0.2.0

func (c *AppConfig) GetBuildSource() string

GetBuildSource returns the source of the build. For builds from goreleaser this will be binaryBuild

func (*AppConfig) GetCommit

func (c *AppConfig) GetCommit() string

GetCommit returns debug flag

func (*AppConfig) GetDebug

func (c *AppConfig) GetDebug() bool

GetDebug returns debug flag

func (*AppConfig) GetIsNewRepo added in v0.7.1

func (c *AppConfig) GetIsNewRepo() bool

GetIsNewRepo returns known repo boolean

func (*AppConfig) GetName

func (c *AppConfig) GetName() string

GetName returns debug flag

func (*AppConfig) GetUserConfig added in v0.1.65

func (c *AppConfig) GetUserConfig() *UserConfig

GetUserConfig returns the user config

func (*AppConfig) GetUserConfigDir added in v0.10.1

func (c *AppConfig) GetUserConfigDir() string

func (*AppConfig) GetUserConfigPath added in v0.23.1

func (c *AppConfig) GetUserConfigPath() string

GetUserConfig returns the user config

func (*AppConfig) GetVersion

func (c *AppConfig) GetVersion() string

GetVersion returns debug flag

func (*AppConfig) SaveAppState added in v0.2.0

func (c *AppConfig) SaveAppState() error

SaveAppState marshalls the AppState struct and writes it to the disk

func (*AppConfig) SetIsNewRepo added in v0.7.1

func (c *AppConfig) SetIsNewRepo(toSet bool)

SetIsNewRepo set if the current repo is known

type AppConfigurer

type AppConfigurer interface {
	GetDebug() bool
	GetVersion() string
	GetCommit() string
	GetBuildDate() string
	GetName() string
	GetBuildSource() string
	GetUserConfig() *UserConfig
	GetUserConfigDir() string
	GetUserConfigPath() string
	GetAppState() *AppState
	SaveAppState() error
	SetIsNewRepo(bool)
	GetIsNewRepo() bool
}

AppConfigurer interface allows individual app config structs to inherit Fields from AppConfig and still be used by lazygit.

type AppState added in v0.2.0

type AppState struct {
	LastUpdateCheck     int64
	RecentRepos         []string
	StartupPopupVersion int
}

AppState stores data between runs of the app like when the last update check was performed and which other repos have been checked out

type CommitLengthConfig added in v0.23.1

type CommitLengthConfig struct {
	Show bool `yaml:"show"`
}

type CommitPrefixConfig added in v0.23.1

type CommitPrefixConfig struct {
	Pattern string `yaml:"pattern"`
	Replace string `yaml:"replace"`
}

type CustomCommand added in v0.23.1

type CustomCommand struct {
	Key         string                `yaml:"key"`
	Context     string                `yaml:"context"`
	Command     string                `yaml:"command"`
	Subprocess  bool                  `yaml:"subprocess"`
	Prompts     []CustomCommandPrompt `yaml:"prompts"`
	LoadingText string                `yaml:"loadingText"`
	Description string                `yaml:"description"`
}

type CustomCommandMenuOption added in v0.23.1

type CustomCommandMenuOption struct {
	Name        string `yaml:"name"`
	Description string `yaml:"description"`
	Value       string `yaml:"value"`
}

type CustomCommandPrompt added in v0.23.1

type CustomCommandPrompt struct {
	Type  string `yaml:"type"` // one of 'input' and 'menu'
	Title string `yaml:"title"`

	// this only apply to prompts
	InitialValue string `yaml:"initialValue"`

	// this only applies to menus
	Options []CustomCommandMenuOption
}

type GitConfig added in v0.23.1

type GitConfig struct {
	Paging              PagingConfig                  `yaml:"paging"`
	Merging             MergingConfig                 `yaml:"merging"`
	Pull                PullConfig                    `yaml:"pull"`
	SkipHookPrefix      string                        `yaml:"skipHookPrefix"`
	AutoFetch           bool                          `yaml:"autoFetch"`
	BranchLogCmd        string                        `yaml:"branchLogCmd"`
	AllBranchesLogCmd   string                        `yaml:"allBranchesLogCmd"`
	OverrideGpg         bool                          `yaml:"overrideGpg"`
	DisableForcePushing bool                          `yaml:"disableForcePushing"`
	CommitPrefixes      map[string]CommitPrefixConfig `yaml:"commitPrefixes"`
}

type GuiConfig added in v0.23.1

type GuiConfig struct {
	ScrollHeight             int                `yaml:"scrollHeight"`
	ScrollPastBottom         bool               `yaml:"scrollPastBottom"`
	MouseEvents              bool               `yaml:"mouseEvents"`
	SkipUnstageLineWarning   bool               `yaml:"skipUnstageLineWarning"`
	SkipStashWarning         bool               `yaml:"skipStashWarning"`
	SidePanelWidth           float64            `yaml:"sidePanelWidth"`
	ExpandFocusedSidePanel   bool               `yaml:"expandFocusedSidePanel"`
	MainPanelSplitMode       string             `yaml:"mainPanelSplitMode"`
	Theme                    ThemeConfig        `yaml:"theme"`
	CommitLength             CommitLengthConfig `yaml:"commitLength"`
	SkipNoStagedFilesWarning bool               `yaml:"skipNoStagedFilesWarning"`
}

type KeybindingBranchesConfig added in v0.23.1

type KeybindingBranchesConfig struct {
	CreatePullRequest      string `yaml:"createPullRequest"`
	CopyPullRequestURL     string `yaml:"copyPullRequestURL"`
	CheckoutBranchByName   string `yaml:"checkoutBranchByName"`
	ForceCheckoutBranch    string `yaml:"forceCheckoutBranch"`
	RebaseBranch           string `yaml:"rebaseBranch"`
	RenameBranch           string `yaml:"renameBranch"`
	MergeIntoCurrentBranch string `yaml:"mergeIntoCurrentBranch"`
	ViewGitFlowOptions     string `yaml:"viewGitFlowOptions"`
	FastForward            string `yaml:"fastForward"`
	PushTag                string `yaml:"pushTag"`
	SetUpstream            string `yaml:"setUpstream"`
	FetchRemote            string `yaml:"fetchRemote"`
}

type KeybindingCommitFilesConfig added in v0.23.1

type KeybindingCommitFilesConfig struct {
	CheckoutCommitFile string `yaml:"checkoutCommitFile"`
}

type KeybindingCommitsConfig added in v0.23.1

type KeybindingCommitsConfig struct {
	SquashDown                   string `yaml:"squashDown"`
	RenameCommit                 string `yaml:"renameCommit"`
	RenameCommitWithEditor       string `yaml:"renameCommitWithEditor"`
	ViewResetOptions             string `yaml:"viewResetOptions"`
	MarkCommitAsFixup            string `yaml:"markCommitAsFixup"`
	CreateFixupCommit            string `yaml:"createFixupCommit"`
	SquashAboveCommits           string `yaml:"squashAboveCommits"`
	MoveDownCommit               string `yaml:"moveDownCommit"`
	MoveUpCommit                 string `yaml:"moveUpCommit"`
	AmendToCommit                string `yaml:"amendToCommit"`
	PickCommit                   string `yaml:"pickCommit"`
	RevertCommit                 string `yaml:"revertCommit"`
	CherryPickCopy               string `yaml:"cherryPickCopy"`
	CherryPickCopyRange          string `yaml:"cherryPickCopyRange"`
	PasteCommits                 string `yaml:"pasteCommits"`
	TagCommit                    string `yaml:"tagCommit"`
	CheckoutCommit               string `yaml:"checkoutCommit"`
	ResetCherryPick              string `yaml:"resetCherryPick"`
	CopyCommitMessageToClipboard string `yaml:"copyCommitMessageToClipboard"`
}

type KeybindingConfig added in v0.23.1

type KeybindingConfig struct {
	Universal   KeybindingUniversalConfig   `yaml:"universal"`
	Status      KeybindingStatusConfig      `yaml:"status"`
	Files       KeybindingFilesConfig       `yaml:"files"`
	Branches    KeybindingBranchesConfig    `yaml:"branches"`
	Commits     KeybindingCommitsConfig     `yaml:"commits"`
	Stash       KeybindingStashConfig       `yaml:"stash"`
	CommitFiles KeybindingCommitFilesConfig `yaml:"commitFiles"`
	Main        KeybindingMainConfig        `yaml:"main"`
	Submodules  KeybindingSubmodulesConfig  `yaml:"submodules"`
}

type KeybindingFilesConfig added in v0.23.1

type KeybindingFilesConfig struct {
	CommitChanges            string `yaml:"commitChanges"`
	CommitChangesWithoutHook string `yaml:"commitChangesWithoutHook"`
	AmendLastCommit          string `yaml:"amendLastCommit"`
	CommitChangesWithEditor  string `yaml:"commitChangesWithEditor"`
	IgnoreFile               string `yaml:"ignoreFile"`
	RefreshFiles             string `yaml:"refreshFiles"`
	StashAllChanges          string `yaml:"stashAllChanges"`
	ViewStashOptions         string `yaml:"viewStashOptions"`
	ToggleStagedAll          string `yaml:"toggleStagedAll"`
	ViewResetOptions         string `yaml:"viewResetOptions"`
	Fetch                    string `yaml:"fetch"`
}

type KeybindingMainConfig added in v0.23.1

type KeybindingMainConfig struct {
	ToggleDragSelect    string `yaml:"toggleDragSelect"`
	ToggleDragSelectAlt string `yaml:"toggleDragSelect-alt"`
	ToggleSelectHunk    string `yaml:"toggleSelectHunk"`
	PickBothHunks       string `yaml:"pickBothHunks"`
}

type KeybindingStashConfig added in v0.23.1

type KeybindingStashConfig struct {
	PopStash string `yaml:"popStash"`
}

type KeybindingStatusConfig added in v0.23.1

type KeybindingStatusConfig struct {
	CheckForUpdate      string `yaml:"checkForUpdate"`
	RecentRepos         string `yaml:"recentRepos"`
	AllBranchesLogGraph string `yaml:"allBranchesLogGraph"`
}

type KeybindingSubmodulesConfig added in v0.23.1

type KeybindingSubmodulesConfig struct {
	Init     string `yaml:"init"`
	Update   string `yaml:"update"`
	BulkMenu string `yaml:"bulkMenu"`
}

type KeybindingUniversalConfig added in v0.23.1

type KeybindingUniversalConfig struct {
	Quit                         string `yaml:"quit"`
	QuitAlt1                     string `yaml:"quit-alt1"`
	Return                       string `yaml:"return"`
	QuitWithoutChangingDirectory string `yaml:"quitWithoutChangingDirectory"`
	TogglePanel                  string `yaml:"togglePanel"`
	PrevItem                     string `yaml:"prevItem"`
	NextItem                     string `yaml:"nextItem"`
	PrevItemAlt                  string `yaml:"prevItem-alt"`
	NextItemAlt                  string `yaml:"nextItem-alt"`
	PrevPage                     string `yaml:"prevPage"`
	NextPage                     string `yaml:"nextPage"`
	GotoTop                      string `yaml:"gotoTop"`
	GotoBottom                   string `yaml:"gotoBottom"`
	PrevBlock                    string `yaml:"prevBlock"`
	NextBlock                    string `yaml:"nextBlock"`
	PrevBlockAlt                 string `yaml:"prevBlock-alt"`
	NextBlockAlt                 string `yaml:"nextBlock-alt"`
	NextMatch                    string `yaml:"nextMatch"`
	PrevMatch                    string `yaml:"prevMatch"`
	StartSearch                  string `yaml:"startSearch"`
	OptionMenu                   string `yaml:"optionMenu"`
	OptionMenuAlt1               string `yaml:"optionMenu-alt1"`
	Select                       string `yaml:"select"`
	GoInto                       string `yaml:"goInto"`
	Confirm                      string `yaml:"confirm"`
	ConfirmAlt1                  string `yaml:"confirm-alt1"`
	Remove                       string `yaml:"remove"`
	New                          string `yaml:"new"`
	Edit                         string `yaml:"edit"`
	OpenFile                     string `yaml:"openFile"`
	ScrollUpMain                 string `yaml:"scrollUpMain"`
	ScrollDownMain               string `yaml:"scrollDownMain"`
	ScrollUpMainAlt1             string `yaml:"scrollUpMain-alt1"`
	ScrollDownMainAlt1           string `yaml:"scrollDownMain-alt1"`
	ScrollUpMainAlt2             string `yaml:"scrollUpMain-alt2"`
	ScrollDownMainAlt2           string `yaml:"scrollDownMain-alt2"`
	ExecuteCustomCommand         string `yaml:"executeCustomCommand"`
	CreateRebaseOptionsMenu      string `yaml:"createRebaseOptionsMenu"`
	PushFiles                    string `yaml:"pushFiles"`
	PullFiles                    string `yaml:"pullFiles"`
	Refresh                      string `yaml:"refresh"`
	CreatePatchOptionsMenu       string `yaml:"createPatchOptionsMenu"`
	NextTab                      string `yaml:"nextTab"`
	PrevTab                      string `yaml:"prevTab"`
	NextScreenMode               string `yaml:"nextScreenMode"`
	PrevScreenMode               string `yaml:"prevScreenMode"`
	Undo                         string `yaml:"undo"`
	Redo                         string `yaml:"redo"`
	FilteringMenu                string `yaml:"filteringMenu"`
	DiffingMenu                  string `yaml:"diffingMenu"`
	DiffingMenuAlt               string `yaml:"diffingMenu-alt"`
	CopyToClipboard              string `yaml:"copyToClipboard"`
	SubmitEditorText             string `yaml:"submitEditorText"`
	AppendNewline                string `yaml:"appendNewline"`
}

type MergingConfig added in v0.23.1

type MergingConfig struct {
	ManualCommit bool   `yaml:"manualCommit"`
	Args         string `yaml:"args"`
}

type OSConfig added in v0.23.1

type OSConfig struct {
	// OpenCommand is the command for opening a file
	OpenCommand string `yaml:"openCommand,omitempty"`

	// OpenCommand is the command for opening a link
	OpenLinkCommand string `yaml:"openLinkCommand,omitempty"`
}

OSConfig contains config on the level of the os

func GetPlatformDefaultConfig added in v0.2.2

func GetPlatformDefaultConfig() OSConfig

GetPlatformDefaultConfig gets the defaults for the platform

type PagingConfig added in v0.23.1

type PagingConfig struct {
	ColorArg  string `yaml:"colorArg"`
	Pager     string `yaml:"pager"`
	UseConfig bool   `yaml:"useConfig"`
}

type PullConfig added in v0.23.1

type PullConfig struct {
	Mode string `yaml:"mode"`
}

type RefresherConfig added in v0.25.1

type RefresherConfig struct {
	RefreshInterval int `yaml:"refreshInterval"`
	FetchInterval   int `yaml:"fetchInterval"`
}

type ThemeConfig added in v0.23.1

type ThemeConfig struct {
	LightTheme           bool     `yaml:"lightTheme"`
	ActiveBorderColor    []string `yaml:"activeBorderColor"`
	InactiveBorderColor  []string `yaml:"inactiveBorderColor"`
	OptionsTextColor     []string `yaml:"optionsTextColor"`
	SelectedLineBgColor  []string `yaml:"selectedLineBgColor"`
	SelectedRangeBgColor []string `yaml:"selectedRangeBgColor"`
}

type UpdateConfig added in v0.23.1

type UpdateConfig struct {
	Method string `yaml:"method"`
	Days   int64  `yaml:"days"`
}

type UserConfig added in v0.23.1

type UserConfig struct {
	Gui                  GuiConfig        `yaml:"gui"`
	Git                  GitConfig        `yaml:"git"`
	Update               UpdateConfig     `yaml:"update"`
	Refresher            RefresherConfig  `yaml:"refresher"`
	Reporting            string           `yaml:"reporting"`
	SplashUpdatesIndex   int              `yaml:"splashUpdatesIndex"`
	ConfirmOnQuit        bool             `yaml:"confirmOnQuit"`
	QuitOnTopLevelReturn bool             `yaml:"quitOnTopLevelReturn"`
	Keybinding           KeybindingConfig `yaml:"keybinding"`
	// OS determines what defaults are set for opening files and links
	OS                   OSConfig          `yaml:"os,omitempty"`
	DisableStartupPopups bool              `yaml:"disableStartupPopups"`
	CustomCommands       []CustomCommand   `yaml:"customCommands"`
	Services             map[string]string `yaml:"services"`
	NotARepository       string            `yaml:"notARepository"`
}

func GetDefaultConfig added in v0.2.0

func GetDefaultConfig() *UserConfig

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL