Documentation
¶
Index ¶
Constants ¶
const ( SCREEN_NORMAL int = iota SCREEN_HALF SCREEN_FULL )
const StartupPopupVersion = 1
Variables ¶
var OverlappingEdges = false
OverlappingEdges determines if panel edges overlap
Functions ¶
func GetKeyDisplay ¶
func GetKeyDisplay(key interface{}) string
Types ¶
type Binding ¶
type Binding struct {
ViewName string
Contexts []string
Handler func(*gocui.Gui, *gocui.View) error
Key interface{} // FIXME: find out how to get `gocui.Key | rune`
Modifier gocui.Modifier
Description string
Alternative string
}
Binding - a keybinding mapping a key and modifier to a handler. The keypress is only handled if the given view has focus, or handled globally if the view is ""
func (*Binding) GetDisplayStrings ¶
GetDisplayStrings returns the display string of a file
type Gui ¶
type Gui struct {
Log *logrus.Entry
NpmManager *commands.NpmManager
OSCommand *commands.OSCommand
SubProcess *exec.Cmd
State *guiState
Config config.AppConfigurer
Tr *i18n.Localizer
Errors SentinelErrors
Updater *updates.Updater
RefreshMutex sync.Mutex
// contains filtered or unexported fields
}
Gui wraps the gocui Gui object which handles rendering and events
func NewGui ¶
func NewGui(log *logrus.Entry, gitCommand *commands.NpmManager, oSCommand *commands.OSCommand, tr *i18n.Localizer, config config.AppConfigurer, updater *updates.Updater) (*Gui, error)
for now the split view will always be on NewGui builds a new gui handler
func (*Gui) GenerateSentinelErrors ¶
func (gui *Gui) GenerateSentinelErrors()
GenerateSentinelErrors makes the sentinel errors for the gui. We're defining it here because we can't do package-scoped errors with localization, and also because it seems like package-scoped variables are bad in general https://dave.cheney.net/2017/06/11/go-without-package-scoped-variables In the future it would be good to implement some of the recommendations of that article. For now, if we don't need an error to be a sentinel, we will just define it inline. This has implications for error messages that pop up everywhere in that we'll be duplicating the default values. We may need to look at having a default localisation bundle defined, and just using keys-only when localising things in the code.
func (*Gui) GetInitialKeybindings ¶
GetInitialKeybindings is a function.
func (*Gui) RunWithSubprocesses ¶
RunWithSubprocesses loops, instantiating a new gocui.Gui with each iteration if the error returned from a run is a ErrSubProcess, it runs the subprocess otherwise it handles the error, possibly by quitting the application
type SentinelErrors ¶
SentinelErrors are the errors that have special meaning and need to be checked by calling functions. The less of these, the better
Source Files
¶
- app_status_manager.go
- confirmation_panel.go
- dependencies_panel.go
- global_handlers.go
- gui.go
- keybindings.go
- layout.go
- list_view.go
- main_view.go
- menu_panel.go
- options_menu_panel.go
- packages_panel.go
- pty.go
- quitting.go
- recent_packages.go
- scripts_panel.go
- searching.go
- status_panel.go
- tarballs_panel.go
- updates.go
- view_helpers.go