context

package
v0.65.0 Latest Latest
Warning

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

Go to latest
Published: Sep 5, 2026 License: MIT Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// used as a nil value when passing a context key as an arg
	NO_CONTEXT types.ContextKey = "none"

	GLOBAL_CONTEXT_KEY                   types.ContextKey = "global"
	STATUS_CONTEXT_KEY                   types.ContextKey = "status"
	SNAKE_CONTEXT_KEY                    types.ContextKey = "snake"
	FILES_CONTEXT_KEY                    types.ContextKey = "files"
	LOCAL_BRANCHES_CONTEXT_KEY           types.ContextKey = "localBranches"
	REMOTES_CONTEXT_KEY                  types.ContextKey = "remotes"
	WORKTREES_CONTEXT_KEY                types.ContextKey = "worktrees"
	REMOTE_BRANCHES_CONTEXT_KEY          types.ContextKey = "remoteBranches"
	TAGS_CONTEXT_KEY                     types.ContextKey = "tags"
	LOCAL_COMMITS_CONTEXT_KEY            types.ContextKey = "commits"
	REFLOG_COMMITS_CONTEXT_KEY           types.ContextKey = "reflogCommits"
	SUB_COMMITS_CONTEXT_KEY              types.ContextKey = "subCommits"
	COMMIT_FILES_CONTEXT_KEY             types.ContextKey = "commitFiles"
	STASH_CONTEXT_KEY                    types.ContextKey = "stash"
	NORMAL_MAIN_CONTEXT_KEY              types.ContextKey = "normal"
	NORMAL_SECONDARY_CONTEXT_KEY         types.ContextKey = "normalSecondary"
	STAGING_MAIN_CONTEXT_KEY             types.ContextKey = "staging"
	STAGING_SECONDARY_CONTEXT_KEY        types.ContextKey = "stagingSecondary"
	PATCH_BUILDING_MAIN_CONTEXT_KEY      types.ContextKey = "patchBuilding"
	PATCH_BUILDING_SECONDARY_CONTEXT_KEY types.ContextKey = "patchBuildingSecondary"
	MERGE_CONFLICTS_CONTEXT_KEY          types.ContextKey = "mergeConflicts"

	// these shouldn't really be needed for anything but I'm giving them unique keys nonetheless
	OPTIONS_CONTEXT_KEY        types.ContextKey = "options"
	APP_STATUS_CONTEXT_KEY     types.ContextKey = "appStatus"
	SEARCH_PREFIX_CONTEXT_KEY  types.ContextKey = "searchPrefix"
	INFORMATION_CONTEXT_KEY    types.ContextKey = "information"
	LIMIT_CONTEXT_KEY          types.ContextKey = "limit"
	STATUS_SPACER1_CONTEXT_KEY types.ContextKey = "statusSpacer1"
	STATUS_SPACER2_CONTEXT_KEY types.ContextKey = "statusSpacer2"

	MENU_CONTEXT_KEY               types.ContextKey = "menu"
	CONFIRMATION_CONTEXT_KEY       types.ContextKey = "confirmation"
	PROMPT_CONTEXT_KEY             types.ContextKey = "prompt"
	SEARCH_CONTEXT_KEY             types.ContextKey = "search"
	COMMIT_MESSAGE_CONTEXT_KEY     types.ContextKey = "commitMessage"
	COMMIT_DESCRIPTION_CONTEXT_KEY types.ContextKey = "commitDescription"
	SUBMODULES_CONTEXT_KEY         types.ContextKey = "submodules"
	SUGGESTIONS_CONTEXT_KEY        types.ContextKey = "suggestions"
	COMMAND_LOG_CONTEXT_KEY        types.ContextKey = "cmdLog"
)
View Source
const HORIZONTAL_SCROLL_FACTOR = 3
View Source
const NoCommitIndex = -1

when selectedIndex (see below) is set to this value, it means that we're not currently viewing a commit message of an existing commit: instead we're making our own new commit message

View Source
const PreservedCommitMessageFileName = "LAZYGIT_PENDING_COMMIT"

Variables

Functions

func NewDisplayContext added in v0.36.0

func NewDisplayContext(key types.ContextKey, view *gocui.View, windowName string) types.Context

A Display context only renders a view. It has no keybindings and is not focusable.

func Zero

func Zero[T any]() T

Types

type BaseContext

type BaseContext struct {
	*ParentContextMgr
	// contains filtered or unexported fields
}

func NewBaseContext

func NewBaseContext(opts NewBaseContextOpts) *BaseContext

func (*BaseContext) AddKeybindingsFn

func (self *BaseContext) AddKeybindingsFn(fn types.KeybindingsFn)

func (*BaseContext) AddMouseKeybindingsFn

func (self *BaseContext) AddMouseKeybindingsFn(fn types.MouseKeybindingsFn)

func (*BaseContext) AddOnClickFn

func (self *BaseContext) AddOnClickFn(fn func(opts gocui.ViewMouseBindingOpts) error)

func (*BaseContext) AddOnClickFocusedMainViewFn added in v0.50.0

func (self *BaseContext) AddOnClickFocusedMainViewFn(fn onClickFocusedMainViewFn)

func (*BaseContext) AddOnDoubleClickFn added in v0.61.0

func (self *BaseContext) AddOnDoubleClickFn(fn func() error)

func (*BaseContext) AddOnFocusFn added in v0.39.0

func (self *BaseContext) AddOnFocusFn(fn onFocusFn)

func (*BaseContext) AddOnFocusLostFn added in v0.39.0

func (self *BaseContext) AddOnFocusLostFn(fn onFocusLostFn)

func (*BaseContext) AddOnQuitFn added in v0.62.0

func (self *BaseContext) AddOnQuitFn(fn func())

func (*BaseContext) AddOnRenderToMainFn added in v0.39.0

func (self *BaseContext) AddOnRenderToMainFn(fn func())

func (*BaseContext) ClearAllAttachedControllerFunctions added in v0.54.0

func (self *BaseContext) ClearAllAttachedControllerFunctions()

func (*BaseContext) GetInputViewName added in v0.65.0

func (self *BaseContext) GetInputViewName() string

func (*BaseContext) GetKey

func (self *BaseContext) GetKey() types.ContextKey

func (*BaseContext) GetKeybindings

func (self *BaseContext) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding

func (*BaseContext) GetKind

func (self *BaseContext) GetKind() types.ContextKind

func (*BaseContext) GetMouseKeybindings

func (self *BaseContext) GetMouseKeybindings(opts types.KeybindingsOpts) []*gocui.ViewMouseBinding

func (*BaseContext) GetOnClick

func (self *BaseContext) GetOnClick() func(opts gocui.ViewMouseBindingOpts) error

func (*BaseContext) GetOnClickFocusedMainView added in v0.50.0

func (self *BaseContext) GetOnClickFocusedMainView() onClickFocusedMainViewFn

func (*BaseContext) GetOnDoubleClick added in v0.61.0

func (self *BaseContext) GetOnDoubleClick() func() error

func (*BaseContext) GetOptionsMap

func (self *BaseContext) GetOptionsMap() map[string]string

func (*BaseContext) GetView added in v0.36.0

func (self *BaseContext) GetView() *gocui.View

func (*BaseContext) GetViewName

func (self *BaseContext) GetViewName() string

func (*BaseContext) GetViewTrait added in v0.36.0

func (self *BaseContext) GetViewTrait() types.IViewTrait

func (*BaseContext) GetWindowName

func (self *BaseContext) GetWindowName() string

func (*BaseContext) HasControlledBounds added in v0.36.0

func (self *BaseContext) HasControlledBounds() bool

func (*BaseContext) HasSelectableContent added in v0.65.0

func (self *BaseContext) HasSelectableContent() bool

func (*BaseContext) IsFocusable

func (self *BaseContext) IsFocusable() bool

func (*BaseContext) IsTransient

func (self *BaseContext) IsTransient() bool

func (*BaseContext) NeedsRerenderOnHeightChange added in v0.43.0

func (self *BaseContext) NeedsRerenderOnHeightChange() bool

func (*BaseContext) NeedsRerenderOnWidthChange added in v0.41.0

func (self *BaseContext) NeedsRerenderOnWidthChange() types.NeedsRerenderOnWidthChangeLevel

func (*BaseContext) SetWindowName

func (self *BaseContext) SetWindowName(windowName string)

func (*BaseContext) Title

func (self *BaseContext) Title() string

func (*BaseContext) TotalContentHeight added in v0.44.0

func (self *BaseContext) TotalContentHeight() int

type BranchesContext

type BranchesContext struct {
	*FilteredListViewModel[*models.Branch]
	*ListContextTrait
}

func NewBranchesContext

func NewBranchesContext(c *ContextCommon) *BranchesContext

func (*BranchesContext) GetDiffTerminals added in v0.39.0

func (self *BranchesContext) GetDiffTerminals() []string

func (*BranchesContext) GetSelectedRef

func (self *BranchesContext) GetSelectedRef() models.Ref

func (*BranchesContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *BranchesContext) RefForAdjustingLineNumberInDiff() string

func (*BranchesContext) ShowBranchHeadsInSubCommits added in v0.40.0

func (self *BranchesContext) ShowBranchHeadsInSubCommits() bool

type CommitFilesContext

func NewCommitFilesContext

func NewCommitFilesContext(c *ContextCommon) *CommitFilesContext

func (*CommitFilesContext) GetDiffTerminals added in v0.39.0

func (self *CommitFilesContext) GetDiffTerminals() []string

func (*CommitFilesContext) GetFromAndToForDiff added in v0.44.0

func (self *CommitFilesContext) GetFromAndToForDiff() (string, string)

func (*CommitFilesContext) ReInit added in v0.44.0

func (self *CommitFilesContext) ReInit(ref models.Ref, refRange *types.RefRange)

func (*CommitFilesContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *CommitFilesContext) RefForAdjustingLineNumberInDiff() string

type CommitMessageContext added in v0.38.0

type CommitMessageContext struct {
	types.Context
	// contains filtered or unexported fields
}

func NewCommitMessageContext added in v0.38.0

func NewCommitMessageContext(
	c *ContextCommon,
) *CommitMessageContext

func (*CommitMessageContext) CanSwitchToEditor added in v0.41.0

func (self *CommitMessageContext) CanSwitchToEditor() bool

func (*CommitMessageContext) GetHistoryMessage added in v0.38.0

func (self *CommitMessageContext) GetHistoryMessage() string

func (*CommitMessageContext) GetInitialMessage added in v0.45.0

func (self *CommitMessageContext) GetInitialMessage() string

func (*CommitMessageContext) GetPreserveMessage added in v0.38.0

func (self *CommitMessageContext) GetPreserveMessage() bool

func (*CommitMessageContext) GetPreservedMessageAndLogError added in v0.46.0

func (self *CommitMessageContext) GetPreservedMessageAndLogError() string

func (*CommitMessageContext) GetPreservedMessagePath added in v0.46.0

func (self *CommitMessageContext) GetPreservedMessagePath() string

func (*CommitMessageContext) GetSelectedIndex added in v0.38.0

func (self *CommitMessageContext) GetSelectedIndex() int

func (*CommitMessageContext) OnConfirm added in v0.38.0

func (self *CommitMessageContext) OnConfirm(summary string, description string) error

func (*CommitMessageContext) RenderSubtitle added in v0.49.0

func (self *CommitMessageContext) RenderSubtitle()

func (*CommitMessageContext) SetHistoryMessage added in v0.38.0

func (self *CommitMessageContext) SetHistoryMessage(message string)

func (*CommitMessageContext) SetPanelState added in v0.38.0

func (self *CommitMessageContext) SetPanelState(
	index int,
	summaryTitle string,
	descriptionTitle string,
	preserveMessage bool,
	initialMessage string,
	onConfirm func(string, string) error,
	onSwitchToEditor func(string) error,
	forceSkipHooks bool,
	skipHooksPrefix string,
)

func (*CommitMessageContext) SetPreservedMessageAndLogError added in v0.46.0

func (self *CommitMessageContext) SetPreservedMessageAndLogError(message string)

func (*CommitMessageContext) SetSelectedIndex added in v0.38.0

func (self *CommitMessageContext) SetSelectedIndex(value int)

func (*CommitMessageContext) SwitchToEditor added in v0.41.0

func (self *CommitMessageContext) SwitchToEditor(message string) error

type CommitMessageViewModel added in v0.38.0

type CommitMessageViewModel struct {
	// contains filtered or unexported fields
}

type ConfirmationContext added in v0.39.0

type ConfirmationContext struct {
	*SimpleContext

	State ConfirmationContextState
	// contains filtered or unexported fields
}

func NewConfirmationContext added in v0.39.0

func NewConfirmationContext(
	c *ContextCommon,
) *ConfirmationContext

type ConfirmationContextState added in v0.39.0

type ConfirmationContextState struct {
	OnConfirm func() error
	OnClose   func() error
}

type ConflictsViewModel added in v0.36.0

type ConflictsViewModel struct {
	// contains filtered or unexported fields
}

type ContextCommon added in v0.39.0

type ContextCommon struct {
	*common.Common
	types.IGuiCommon
}

type ContextTree

type ContextTree struct {
	Global                      types.Context
	Status                      types.Context
	Snake                       types.Context
	Files                       *WorkingTreeContext
	Menu                        *MenuContext
	Branches                    *BranchesContext
	Tags                        *TagsContext
	LocalCommits                *LocalCommitsContext
	CommitFiles                 *CommitFilesContext
	Remotes                     *RemotesContext
	Worktrees                   *WorktreesContext
	Submodules                  *SubmodulesContext
	RemoteBranches              *RemoteBranchesContext
	ReflogCommits               *ReflogCommitsContext
	SubCommits                  *SubCommitsContext
	Stash                       *StashContext
	Suggestions                 *SuggestionsContext
	Normal                      *MainContext
	NormalSecondary             *MainContext
	Staging                     *PatchExplorerContext
	StagingSecondary            *PatchExplorerContext
	CustomPatchBuilder          *PatchExplorerContext
	CustomPatchBuilderSecondary types.Context
	MergeConflicts              *MergeConflictsContext
	Confirmation                *ConfirmationContext
	Prompt                      *PromptContext
	CommitMessage               *CommitMessageContext
	CommitDescription           types.Context
	CommandLog                  types.Context

	// display contexts
	AppStatus     types.Context
	Options       types.Context
	SearchPrefix  types.Context
	Search        types.Context
	Information   types.Context
	Limit         types.Context
	StatusSpacer1 types.Context
	StatusSpacer2 types.Context
}

func NewContextTree added in v0.39.0

func NewContextTree(c *ContextCommon) *ContextTree

func (*ContextTree) Flatten

func (self *ContextTree) Flatten() []types.Context

the order of this decides which context is initially at the top of its window

type DynamicTitleBuilder

type DynamicTitleBuilder struct {
	// contains filtered or unexported fields
}

func NewDynamicTitleBuilder

func NewDynamicTitleBuilder(formatStr string) *DynamicTitleBuilder

func (*DynamicTitleBuilder) SetTitleRef

func (self *DynamicTitleBuilder) SetTitleRef(titleRef string)

func (*DynamicTitleBuilder) Title

func (self *DynamicTitleBuilder) Title() string

type FilteredList added in v0.39.0

type FilteredList[T any] struct {
	// contains filtered or unexported fields
}

func NewFilteredList added in v0.39.0

func NewFilteredList[T any](getList func() []T, getFilterFields func(T) []string) *FilteredList[T]

func (*FilteredList[T]) ClearFilter added in v0.39.0

func (self *FilteredList[T]) ClearFilter()

func (*FilteredList[T]) GetFilter added in v0.39.0

func (self *FilteredList[T]) GetFilter() string

func (*FilteredList[T]) GetFilteredList added in v0.39.0

func (self *FilteredList[T]) GetFilteredList() []T

func (*FilteredList[T]) IsFiltering added in v0.39.0

func (self *FilteredList[T]) IsFiltering() bool

func (*FilteredList[T]) ReApplyFilter added in v0.41.0

func (self *FilteredList[T]) ReApplyFilter(useFuzzySearch bool)

func (*FilteredList[T]) SetFilter added in v0.39.0

func (self *FilteredList[T]) SetFilter(filter string, useFuzzySearch bool)

func (*FilteredList[T]) SetPreprocessFilterFunc added in v0.55.0

func (self *FilteredList[T]) SetPreprocessFilterFunc(preprocessFilter func(string) string)

func (*FilteredList[T]) UnfilteredIndex added in v0.39.0

func (self *FilteredList[T]) UnfilteredIndex(index int) int

func (*FilteredList[T]) UnfilteredLen added in v0.39.0

func (self *FilteredList[T]) UnfilteredLen() int

TODO: update to just 'Len'

type FilteredListViewModel added in v0.39.0

type FilteredListViewModel[T HasID] struct {
	*FilteredList[T]
	*ListViewModel[T]
	*SearchHistory
}

func NewFilteredListViewModel added in v0.39.0

func NewFilteredListViewModel[T HasID](getList func() []T, getFilterFields func(T) []string) *FilteredListViewModel[T]

func (*FilteredListViewModel[T]) ClearFilter added in v0.39.0

func (self *FilteredListViewModel[T]) ClearFilter()

func (*FilteredListViewModel[T]) IsFilterableContext added in v0.39.0

func (self *FilteredListViewModel[T]) IsFilterableContext()

used for type switch

type HasID added in v0.41.0

type HasID interface {
	ID() string
}

type ListContextTrait

type ListContextTrait struct {
	types.Context
	ListRenderer
	// contains filtered or unexported fields
}

func (*ListContextTrait) FocusLine

func (self *ListContextTrait) FocusLine(scrollIntoView bool)

func (*ListContextTrait) HandleFocus

func (self *ListContextTrait) HandleFocus(opts types.OnFocusOpts)

func (*ListContextTrait) HandleFocusLost

func (self *ListContextTrait) HandleFocusLost(opts types.OnFocusLostOpts)

func (*ListContextTrait) HandleRender

func (self *ListContextTrait) HandleRender()

OnFocus assumes that the content of the context has already been rendered to the view. OnRender is the function which actually renders the content to the view

func (*ListContextTrait) HasSelectableContent added in v0.65.0

func (self *ListContextTrait) HasSelectableContent() bool

func (*ListContextTrait) IndexForGotoBottom added in v0.51.0

func (self *ListContextTrait) IndexForGotoBottom() int

func (*ListContextTrait) IsItemVisible added in v0.41.0

func (self *ListContextTrait) IsItemVisible(item types.HasUrn) bool

func (*ListContextTrait) IsListContext added in v0.39.0

func (self *ListContextTrait) IsListContext()

func (*ListContextTrait) OnSearchSelect

func (self *ListContextTrait) OnSearchSelect(selectedLineIdx int)

func (*ListContextTrait) RangeSelectEnabled added in v0.41.0

func (self *ListContextTrait) RangeSelectEnabled() bool

By default, list contexts supports range select

func (*ListContextTrait) RenderOnlyVisibleLines added in v0.43.0

func (self *ListContextTrait) RenderOnlyVisibleLines() bool

func (*ListContextTrait) SetNeedRerenderVisibleLines added in v0.58.0

func (self *ListContextTrait) SetNeedRerenderVisibleLines()

func (*ListContextTrait) TotalContentHeight added in v0.44.0

func (self *ListContextTrait) TotalContentHeight() int

type ListRenderer added in v0.41.0

type ListRenderer struct {
	// contains filtered or unexported fields
}

func (*ListRenderer) ColumnPositions added in v0.43.0

func (self *ListRenderer) ColumnPositions() []int

func (*ListRenderer) GetList added in v0.41.0

func (self *ListRenderer) GetList() types.IList

func (*ListRenderer) ModelIndexToViewIndex added in v0.41.0

func (self *ListRenderer) ModelIndexToViewIndex(modelIndex int) int

func (*ListRenderer) ViewIndexToModelIndex added in v0.41.0

func (self *ListRenderer) ViewIndexToModelIndex(viewIndex int) int

type ListViewModel added in v0.39.0

type ListViewModel[T HasID] struct {
	*traits.ListCursor
	// contains filtered or unexported fields
}

func NewListViewModel added in v0.39.0

func NewListViewModel[T HasID](getModel func() []T) *ListViewModel[T]

func (*ListViewModel[T]) GetItem added in v0.41.0

func (self *ListViewModel[T]) GetItem(index int) types.HasUrn

func (*ListViewModel[T]) GetItems added in v0.39.0

func (self *ListViewModel[T]) GetItems() []T

func (*ListViewModel[T]) GetSelected added in v0.39.0

func (self *ListViewModel[T]) GetSelected() T

func (*ListViewModel[T]) GetSelectedItemId added in v0.41.0

func (self *ListViewModel[T]) GetSelectedItemId() string

func (*ListViewModel[T]) GetSelectedItemIds added in v0.41.0

func (self *ListViewModel[T]) GetSelectedItemIds() ([]string, int, int)

func (*ListViewModel[T]) GetSelectedItems added in v0.41.0

func (self *ListViewModel[T]) GetSelectedItems() ([]T, int, int)

type LocalCommitsContext

type LocalCommitsContext struct {
	*LocalCommitsViewModel
	*ListContextTrait
	*SearchTrait
	// contains filtered or unexported fields
}

func NewLocalCommitsContext

func NewLocalCommitsContext(c *ContextCommon) *LocalCommitsContext

func (*LocalCommitsContext) CanRebase

func (self *LocalCommitsContext) CanRebase() bool

func (*LocalCommitsContext) ClearDropInsertionIndex added in v0.64.0

func (self *LocalCommitsContext) ClearDropInsertionIndex()

func (*LocalCommitsContext) GetDiffTerminals added in v0.39.0

func (self *LocalCommitsContext) GetDiffTerminals() []string

func (*LocalCommitsContext) GetSelectedCommitHash added in v0.42.0

func (self *LocalCommitsContext) GetSelectedCommitHash() string

Returns the commit hash of the selected commit, or an empty string if no commit is selected

func (*LocalCommitsContext) GetSelectedRef

func (self *LocalCommitsContext) GetSelectedRef() models.Ref

func (*LocalCommitsContext) GetSelectedRefRangeForDiffFiles added in v0.44.0

func (self *LocalCommitsContext) GetSelectedRefRangeForDiffFiles() *types.RefRange

func (*LocalCommitsContext) IndexForGotoBottom added in v0.51.0

func (self *LocalCommitsContext) IndexForGotoBottom() int

func (*LocalCommitsContext) ModelSearchResults added in v0.43.0

func (self *LocalCommitsContext) ModelSearchResults(searchStr string, caseSensitive bool) []gocui.SearchPosition

func (*LocalCommitsContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *LocalCommitsContext) RefForAdjustingLineNumberInDiff() string

func (*LocalCommitsContext) SelectCommitByHash added in v0.42.0

func (self *LocalCommitsContext) SelectCommitByHash(hash string) bool

func (*LocalCommitsContext) SetDropInsertionIndex added in v0.64.0

func (self *LocalCommitsContext) SetDropInsertionIndex(index int)

func (*LocalCommitsContext) SetMovingCommitsInsertionIndex added in v0.64.0

func (self *LocalCommitsContext) SetMovingCommitsInsertionIndex(index int)

type LocalCommitsViewModel

type LocalCommitsViewModel struct {
	*ListViewModel[*models.Commit]
	// contains filtered or unexported fields
}

func NewLocalCommitsViewModel

func NewLocalCommitsViewModel(getModel func() []*models.Commit, c *ContextCommon) *LocalCommitsViewModel

func (*LocalCommitsViewModel) GetCommits

func (self *LocalCommitsViewModel) GetCommits() []*models.Commit

func (*LocalCommitsViewModel) GetLimitCommits

func (self *LocalCommitsViewModel) GetLimitCommits() bool

func (*LocalCommitsViewModel) GetShowWholeGitGraph

func (self *LocalCommitsViewModel) GetShowWholeGitGraph() bool

func (*LocalCommitsViewModel) SetLimitCommits

func (self *LocalCommitsViewModel) SetLimitCommits(value bool)

func (*LocalCommitsViewModel) SetShowWholeGitGraph

func (self *LocalCommitsViewModel) SetShowWholeGitGraph(value bool)

type MainContext added in v0.50.0

type MainContext struct {
	*SimpleContext
	*SearchTrait
}

func NewMainContext added in v0.50.0

func NewMainContext(
	view *gocui.View,
	windowName string,
	key types.ContextKey,
	c *ContextCommon,
) *MainContext

func (*MainContext) ModelSearchResults added in v0.50.0

func (self *MainContext) ModelSearchResults(searchStr string, caseSensitive bool) []gocui.SearchPosition

func (*MainContext) OnSearchSelect added in v0.61.0

func (self *MainContext) OnSearchSelect(int)
type MenuContext struct {
	*MenuViewModel
	*ListContextTrait
	// contains filtered or unexported fields
}

func NewMenuContext

func NewMenuContext(
	c *ContextCommon,
) *MenuContext
func (self *MenuContext) GetInputViewName() string

A menu that filters as you type points the keyboard at its filter input, so that whatever the user types ends up there. Keys that the input doesn't take still reach the menu, because the input view is embedded in the menu view.

func (self *MenuContext) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding
func (self *MenuContext) OnMenuPress(selectedItem *types.MenuItem) error
func (self *MenuContext) RangeSelectEnabled() bool

There is currently no need to use range-select in a menu so we're disabling it.

type MenuViewModel struct {
	*FilteredListViewModel[*types.MenuItem]
	// contains filtered or unexported fields
}

func NewMenuViewModel

func NewMenuViewModel(c *ContextCommon) *MenuViewModel
func (self *MenuViewModel) AllowFilteringKeybindings() bool
func (self *MenuViewModel) FilterAsYouType() bool
func (self *MenuViewModel) FilterStarted() bool
func (self *MenuViewModel) GetDisplayStrings(_ int, _ int) [][]string

TODO: move into presentation package

func (self *MenuViewModel) GetNonModelItems() []*NonModelItem
func (self *MenuViewModel) GetPrompt() string
func (self *MenuViewModel) GetPromptLines() []string
func (self *MenuViewModel) SetAllowFilteringKeybindings(allow bool)
func (self *MenuViewModel) SetFilterAsYouType(value bool)

Whether this menu has a filter row that filters the items as the user types, instead of being filtered through the search prompt.

func (self *MenuViewModel) SetFilterStarted(value bool)

Whether the user has started to filter, which is when the filter row appears.

func (self *MenuViewModel) SetKeybindingsTakePrecedence(value bool)
func (self *MenuViewModel) SetMenuItems(items []*types.MenuItem, columnAlignment []utils.Alignment)
func (self *MenuViewModel) SetOnCancel(onCancel func() error)
func (self *MenuViewModel) SetPrompt(prompt string)
func (self *MenuViewModel) SetPromptLines(promptLines []string)

type MergeConflictsContext added in v0.36.0

type MergeConflictsContext struct {
	types.Context
	// contains filtered or unexported fields
}

func NewMergeConflictsContext added in v0.36.0

func NewMergeConflictsContext(
	c *ContextCommon,
) *MergeConflictsContext

func (*MergeConflictsContext) FocusSelection added in v0.38.0

func (self *MergeConflictsContext) FocusSelection()

func (*MergeConflictsContext) GetContentToRender added in v0.36.0

func (self *MergeConflictsContext) GetContentToRender() string

func (*MergeConflictsContext) GetMutex added in v0.36.0

func (self *MergeConflictsContext) GetMutex() *deadlock.Mutex

func (*MergeConflictsContext) GetOriginY added in v0.36.0

func (self *MergeConflictsContext) GetOriginY() int

func (*MergeConflictsContext) GetState added in v0.36.0

func (self *MergeConflictsContext) GetState() *mergeconflicts.State

func (*MergeConflictsContext) IsUserScrolling added in v0.36.0

func (self *MergeConflictsContext) IsUserScrolling() bool

func (*MergeConflictsContext) Render added in v0.36.0

func (self *MergeConflictsContext) Render() error

func (*MergeConflictsContext) RenderAndFocus added in v0.36.0

func (self *MergeConflictsContext) RenderAndFocus()

func (*MergeConflictsContext) SetSelectedLineRange added in v0.41.0

func (self *MergeConflictsContext) SetSelectedLineRange()

func (*MergeConflictsContext) SetState added in v0.36.0

func (self *MergeConflictsContext) SetState(state *mergeconflicts.State)

func (*MergeConflictsContext) SetUserScrolling added in v0.36.0

func (self *MergeConflictsContext) SetUserScrolling(isScrolling bool)

type NewBaseContextOpts

type NewBaseContextOpts struct {
	Kind                        types.ContextKind
	Key                         types.ContextKey
	View                        *gocui.View
	WindowName                  string
	Focusable                   bool
	Transient                   bool
	HasUncontrolledBounds       bool // negating for the sake of making false the default
	HasSelectableContent        bool
	NeedsRerenderOnWidthChange  types.NeedsRerenderOnWidthChangeLevel
	NeedsRerenderOnHeightChange bool

	OnGetOptionsMap func() map[string]string
}

type NonModelItem added in v0.41.0

type NonModelItem struct {
	// Where in the model this should be inserted
	Index int
	// Content to render
	Content string
	// The column from which to render the item
	Column int
}

type ParentContextMgr

type ParentContextMgr struct {
	ParentContext types.Context
}

func (*ParentContextMgr) GetParentContext

func (self *ParentContextMgr) GetParentContext() types.Context

func (*ParentContextMgr) SetParentContext

func (self *ParentContextMgr) SetParentContext(context types.Context)

type PatchExplorerContext added in v0.36.0

type PatchExplorerContext struct {
	*SimpleContext
	*SearchTrait
	// contains filtered or unexported fields
}

func NewPatchExplorerContext added in v0.36.0

func NewPatchExplorerContext(
	view *gocui.View,
	windowName string,
	key types.ContextKey,

	getIncludedLineIndices func() []int,

	c *ContextCommon,
) *PatchExplorerContext

func (*PatchExplorerContext) FocusSelection added in v0.38.0

func (self *PatchExplorerContext) FocusSelection()

func (*PatchExplorerContext) GetContentToRender added in v0.36.0

func (self *PatchExplorerContext) GetContentToRender() string

func (*PatchExplorerContext) GetIncludedLineIndices added in v0.36.0

func (self *PatchExplorerContext) GetIncludedLineIndices() []int

func (*PatchExplorerContext) GetMutex added in v0.36.0

func (self *PatchExplorerContext) GetMutex() *deadlock.Mutex

func (*PatchExplorerContext) GetState added in v0.36.0

func (self *PatchExplorerContext) GetState() *patch_exploring.State

func (*PatchExplorerContext) GetViewTrait added in v0.36.0

func (self *PatchExplorerContext) GetViewTrait() types.IViewTrait

func (*PatchExplorerContext) IsPatchExplorerContext added in v0.39.0

func (self *PatchExplorerContext) IsPatchExplorerContext()

func (*PatchExplorerContext) ModelSearchResults added in v0.43.0

func (self *PatchExplorerContext) ModelSearchResults(searchStr string, caseSensitive bool) []gocui.SearchPosition

func (*PatchExplorerContext) NavigateTo added in v0.36.0

func (self *PatchExplorerContext) NavigateTo(selectedLineIdx int)

func (*PatchExplorerContext) OnSearchSelect added in v0.61.0

func (self *PatchExplorerContext) OnSearchSelect(selectedLineIdx int)

func (*PatchExplorerContext) OnViewWidthChanged added in v0.45.0

func (self *PatchExplorerContext) OnViewWidthChanged()

func (*PatchExplorerContext) Render added in v0.36.0

func (self *PatchExplorerContext) Render()

func (*PatchExplorerContext) RenderAndFocus added in v0.36.0

func (self *PatchExplorerContext) RenderAndFocus()

func (*PatchExplorerContext) SetState added in v0.36.0

func (self *PatchExplorerContext) SetState(state *patch_exploring.State)

type PromptContext added in v0.55.0

type PromptContext struct {
	*SimpleContext

	State ConfirmationContextState
	// contains filtered or unexported fields
}

func NewPromptContext added in v0.55.0

func NewPromptContext(
	c *ContextCommon,
) *PromptContext

type ReflogCommitsContext

type ReflogCommitsContext struct {
	*FilteredListViewModel[*models.Commit]
	*ListContextTrait
}

func NewReflogCommitsContext

func NewReflogCommitsContext(c *ContextCommon) *ReflogCommitsContext

func (*ReflogCommitsContext) CanRebase

func (self *ReflogCommitsContext) CanRebase() bool

func (*ReflogCommitsContext) GetCommits

func (self *ReflogCommitsContext) GetCommits() []*models.Commit

func (*ReflogCommitsContext) GetDiffTerminals added in v0.39.0

func (self *ReflogCommitsContext) GetDiffTerminals() []string

func (*ReflogCommitsContext) GetSelectedRef

func (self *ReflogCommitsContext) GetSelectedRef() models.Ref

func (*ReflogCommitsContext) GetSelectedRefRangeForDiffFiles added in v0.44.0

func (self *ReflogCommitsContext) GetSelectedRefRangeForDiffFiles() *types.RefRange

func (*ReflogCommitsContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *ReflogCommitsContext) RefForAdjustingLineNumberInDiff() string

func (*ReflogCommitsContext) ShowBranchHeadsInSubCommits added in v0.40.0

func (self *ReflogCommitsContext) ShowBranchHeadsInSubCommits() bool

type RemoteBranchesContext

func NewRemoteBranchesContext

func NewRemoteBranchesContext(
	c *ContextCommon,
) *RemoteBranchesContext

func (*RemoteBranchesContext) GetDiffTerminals added in v0.39.0

func (self *RemoteBranchesContext) GetDiffTerminals() []string

func (*RemoteBranchesContext) GetSelectedRef

func (self *RemoteBranchesContext) GetSelectedRef() models.Ref

func (*RemoteBranchesContext) GetSelectedRefs added in v0.41.0

func (self *RemoteBranchesContext) GetSelectedRefs() ([]models.Ref, int, int)

func (*RemoteBranchesContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *RemoteBranchesContext) RefForAdjustingLineNumberInDiff() string

func (*RemoteBranchesContext) ShowBranchHeadsInSubCommits added in v0.40.0

func (self *RemoteBranchesContext) ShowBranchHeadsInSubCommits() bool

type RemotesContext

type RemotesContext struct {
	*FilteredListViewModel[*models.Remote]
	*ListContextTrait
}

func NewRemotesContext

func NewRemotesContext(c *ContextCommon) *RemotesContext

func (*RemotesContext) GetDiffTerminals added in v0.39.0

func (self *RemotesContext) GetDiffTerminals() []string

func (*RemotesContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *RemotesContext) RefForAdjustingLineNumberInDiff() string

type SearchHistory added in v0.41.0

type SearchHistory struct {
	// contains filtered or unexported fields
}

Maintains a list of strings that have previously been searched/filtered for

func NewSearchHistory added in v0.41.0

func NewSearchHistory() *SearchHistory

func (*SearchHistory) GetSearchHistory added in v0.41.0

func (self *SearchHistory) GetSearchHistory() *utils.HistoryBuffer[string]

type SearchTrait added in v0.39.0

type SearchTrait struct {
	*SearchHistory
	// contains filtered or unexported fields
}

func NewSearchTrait added in v0.39.0

func NewSearchTrait(c *ContextCommon) *SearchTrait

func (*SearchTrait) ClearSearchString added in v0.39.0

func (self *SearchTrait) ClearSearchString()

func (*SearchTrait) GetSearchString added in v0.39.0

func (self *SearchTrait) GetSearchString() string

func (*SearchTrait) IsSearchableContext added in v0.39.0

func (self *SearchTrait) IsSearchableContext()

used for type switch

func (*SearchTrait) IsSearching added in v0.39.0

func (self *SearchTrait) IsSearching() bool

func (*SearchTrait) RenderSearchStatus added in v0.41.0

func (self *SearchTrait) RenderSearchStatus(index int, total int)

func (*SearchTrait) SetSearchString added in v0.39.0

func (self *SearchTrait) SetSearchString(searchString string)

type SimpleContext

type SimpleContext struct {
	*BaseContext
	// contains filtered or unexported fields
}

func NewSimpleContext

func NewSimpleContext(baseContext *BaseContext) *SimpleContext

func (*SimpleContext) FocusLine added in v0.50.0

func (self *SimpleContext) FocusLine(scrollIntoView bool)

func (*SimpleContext) HandleFocus

func (self *SimpleContext) HandleFocus(opts types.OnFocusOpts)

func (*SimpleContext) HandleFocusLost

func (self *SimpleContext) HandleFocusLost(opts types.OnFocusLostOpts)

func (*SimpleContext) HandleQuit added in v0.62.0

func (self *SimpleContext) HandleQuit()

func (*SimpleContext) HandleRender

func (self *SimpleContext) HandleRender()

func (*SimpleContext) HandleRenderToMain

func (self *SimpleContext) HandleRenderToMain()

func (*SimpleContext) SetHandleRenderFunc added in v0.45.0

func (self *SimpleContext) SetHandleRenderFunc(f func())

type StashContext

type StashContext struct {
	*FilteredListViewModel[*models.StashEntry]
	*ListContextTrait
}

func NewStashContext

func NewStashContext(
	c *ContextCommon,
) *StashContext

func (*StashContext) CanRebase

func (self *StashContext) CanRebase() bool

func (*StashContext) GetDiffTerminals added in v0.39.0

func (self *StashContext) GetDiffTerminals() []string

func (*StashContext) GetSelectedRef

func (self *StashContext) GetSelectedRef() models.Ref

func (*StashContext) GetSelectedRefRangeForDiffFiles added in v0.44.0

func (self *StashContext) GetSelectedRefRangeForDiffFiles() *types.RefRange

func (*StashContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *StashContext) RefForAdjustingLineNumberInDiff() string

type SubCommitsContext

type SubCommitsContext struct {
	*SubCommitsViewModel
	*ListContextTrait
	*DynamicTitleBuilder
	*SearchTrait
	// contains filtered or unexported fields
}

func NewSubCommitsContext

func NewSubCommitsContext(
	c *ContextCommon,
) *SubCommitsContext

func (*SubCommitsContext) CanRebase

func (self *SubCommitsContext) CanRebase() bool

func (*SubCommitsContext) GetCommits

func (self *SubCommitsContext) GetCommits() []*models.Commit

func (*SubCommitsContext) GetDiffTerminals added in v0.39.0

func (self *SubCommitsContext) GetDiffTerminals() []string

func (*SubCommitsContext) GetLimitCommits added in v0.38.0

func (self *SubCommitsContext) GetLimitCommits() bool

func (*SubCommitsContext) GetSelectedRef

func (self *SubCommitsContext) GetSelectedRef() models.Ref

func (*SubCommitsContext) GetSelectedRefRangeForDiffFiles added in v0.44.0

func (self *SubCommitsContext) GetSelectedRefRangeForDiffFiles() *types.RefRange

func (*SubCommitsContext) IndexForGotoBottom added in v0.51.0

func (self *SubCommitsContext) IndexForGotoBottom() int

func (*SubCommitsContext) ModelSearchResults added in v0.43.0

func (self *SubCommitsContext) ModelSearchResults(searchStr string, caseSensitive bool) []gocui.SearchPosition

func (*SubCommitsContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *SubCommitsContext) RefForAdjustingLineNumberInDiff() string

func (*SubCommitsContext) SetLimitCommits added in v0.38.0

func (self *SubCommitsContext) SetLimitCommits(value bool)

type SubCommitsViewModel

type SubCommitsViewModel struct {
	*ListViewModel[*models.Commit]
	// contains filtered or unexported fields
}

func (*SubCommitsViewModel) GetRef added in v0.38.0

func (self *SubCommitsViewModel) GetRef() models.Ref

func (*SubCommitsViewModel) GetRefToShowDivergenceFrom added in v0.41.0

func (self *SubCommitsViewModel) GetRefToShowDivergenceFrom() string

func (*SubCommitsViewModel) GetShowBranchHeads added in v0.40.0

func (self *SubCommitsViewModel) GetShowBranchHeads() bool

func (*SubCommitsViewModel) SetRef added in v0.38.0

func (self *SubCommitsViewModel) SetRef(ref models.Ref)

func (*SubCommitsViewModel) SetRefToShowDivergenceFrom added in v0.41.0

func (self *SubCommitsViewModel) SetRefToShowDivergenceFrom(ref string)

func (*SubCommitsViewModel) SetShowBranchHeads added in v0.40.0

func (self *SubCommitsViewModel) SetShowBranchHeads(value bool)

type SubmodulesContext

type SubmodulesContext struct {
	*FilteredListViewModel[*models.SubmoduleConfig]
	*ListContextTrait
}

func NewSubmodulesContext

func NewSubmodulesContext(c *ContextCommon) *SubmodulesContext

type SuggestionsContext

type SuggestionsContext struct {
	*ListViewModel[*types.Suggestion]
	*ListContextTrait

	State *SuggestionsContextState
}

func NewSuggestionsContext

func NewSuggestionsContext(
	c *ContextCommon,
) *SuggestionsContext

func (*SuggestionsContext) GetOnDoubleClick added in v0.61.0

func (self *SuggestionsContext) GetOnDoubleClick() func() error

func (*SuggestionsContext) RangeSelectEnabled added in v0.41.0

func (self *SuggestionsContext) RangeSelectEnabled() bool

There is currently no need to use range-select in the suggestions view so we're disabling it.

func (*SuggestionsContext) RefreshSuggestions added in v0.39.0

func (self *SuggestionsContext) RefreshSuggestions()

func (*SuggestionsContext) SetSuggestions added in v0.39.0

func (self *SuggestionsContext) SetSuggestions(suggestions []*types.Suggestion)

type SuggestionsContextState added in v0.39.0

type SuggestionsContextState struct {
	Suggestions        []*types.Suggestion
	OnConfirm          func() error
	OnClose            func() error
	OnDeleteSuggestion func() error
	AsyncHandler       *tasks.AsyncHandler

	AllowEditSuggestion bool

	// FindSuggestions will take a string that the user has typed into a prompt
	// and return a slice of suggestions which match that string.
	FindSuggestions func(string) []*types.Suggestion
}

type TabView added in v0.36.0

type TabView struct {
	Tab      string
	ViewName string
}

type TagsContext

type TagsContext struct {
	*FilteredListViewModel[*models.Tag]
	*ListContextTrait
}

func NewTagsContext

func NewTagsContext(
	c *ContextCommon,
) *TagsContext

func (*TagsContext) GetDiffTerminals added in v0.39.0

func (self *TagsContext) GetDiffTerminals() []string

func (*TagsContext) GetSelectedRef

func (self *TagsContext) GetSelectedRef() models.Ref

func (*TagsContext) RefForAdjustingLineNumberInDiff added in v0.45.0

func (self *TagsContext) RefForAdjustingLineNumberInDiff() string

func (*TagsContext) ShowBranchHeadsInSubCommits added in v0.40.0

func (self *TagsContext) ShowBranchHeadsInSubCommits() bool

type ViewTrait

type ViewTrait struct {
	// contains filtered or unexported fields
}

func NewViewTrait

func NewViewTrait(view *gocui.View) *ViewTrait

func (*ViewTrait) CancelRangeSelect added in v0.41.0

func (self *ViewTrait) CancelRangeSelect()

func (*ViewTrait) FocusPoint

func (self *ViewTrait) FocusPoint(yIdx int, scrollIntoView bool)

func (*ViewTrait) PageDelta

func (self *ViewTrait) PageDelta() int

this returns the amount we'll scroll if we want to scroll by a page.

func (*ViewTrait) ScrollDown

func (self *ViewTrait) ScrollDown(value int)

func (*ViewTrait) ScrollLeft

func (self *ViewTrait) ScrollLeft()

func (*ViewTrait) ScrollRight

func (self *ViewTrait) ScrollRight()

func (*ViewTrait) ScrollUp

func (self *ViewTrait) ScrollUp(value int)

func (*ViewTrait) SelectedLineIdx

func (self *ViewTrait) SelectedLineIdx() int

func (*ViewTrait) SetContent

func (self *ViewTrait) SetContent(content string)

func (*ViewTrait) SetFooter

func (self *ViewTrait) SetFooter(value string)

func (*ViewTrait) SetOriginX

func (self *ViewTrait) SetOriginX(value int)

func (*ViewTrait) SetRangeSelectStart added in v0.41.0

func (self *ViewTrait) SetRangeSelectStart(yIdx int)

func (*ViewTrait) SetViewPortContent

func (self *ViewTrait) SetViewPortContent(content string)

func (*ViewTrait) SetViewPortContentAndClearEverythingElse added in v0.43.0

func (self *ViewTrait) SetViewPortContentAndClearEverythingElse(lineCount int, content string)

func (*ViewTrait) ViewPortYBounds

func (self *ViewTrait) ViewPortYBounds() (int, int)

tells us the start of line indexes shown in the view currently as well as the capacity of lines shown in the viewport.

type WorkingTreeContext

type WorkingTreeContext struct {
	*filetree.FileTreeViewModel
	*ListContextTrait
}

func NewWorkingTreeContext

func NewWorkingTreeContext(c *ContextCommon) *WorkingTreeContext

type WorktreesContext added in v0.40.0

type WorktreesContext struct {
	*FilteredListViewModel[*models.Worktree]
	*ListContextTrait
}

func NewWorktreesContext added in v0.40.0

func NewWorktreesContext(c *ContextCommon) *WorktreesContext

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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