mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-04-21 12:16:54 +02:00
... and import stefanhaller's tcell fork for real rather than just replacing it This solves the problem that people trying to "go install github.com/jesseduffield/lazygit@latest" would get the error go: github.com/jesseduffield/lazygit@latest (in github.com/jesseduffield/lazygit@v0.40.0): The go.mod file for the module providing named packages contains one or more replace directives. It must not contain directives that would cause it to be interpreted differently than if it were the main module.
74 lines
2.5 KiB
Go
74 lines
2.5 KiB
Go
// Copyright 2015 The TCell Authors
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use file except in compliance with the License.
|
|
// You may obtain a copy of the license at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
package tcell
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"github.com/stefanhaller/tcell/v2/terminfo"
|
|
)
|
|
|
|
var (
|
|
// ErrTermNotFound indicates that a suitable terminal entry could
|
|
// not be found. This can result from either not having TERM set,
|
|
// or from the TERM failing to support certain minimal functionality,
|
|
// in particular absolute cursor addressability (the cup capability)
|
|
// is required. For example, legacy "adm3" lacks this capability,
|
|
// whereas the slightly newer "adm3a" supports it. This failure
|
|
// occurs most often with "dumb".
|
|
ErrTermNotFound = terminfo.ErrTermNotFound
|
|
|
|
// ErrNoScreen indicates that no suitable screen could be found.
|
|
// This may result from attempting to run on a platform where there
|
|
// is no support for either termios or console I/O (such as nacl),
|
|
// or from running in an environment where there is no access to
|
|
// a suitable console/terminal device. (For example, running on
|
|
// without a controlling TTY or with no /dev/tty on POSIX platforms.)
|
|
ErrNoScreen = errors.New("no suitable screen available")
|
|
|
|
// ErrNoCharset indicates that the locale environment the
|
|
// program is not supported by the program, because no suitable
|
|
// encoding was found for it. This problem never occurs if
|
|
// the environment is UTF-8 or UTF-16.
|
|
ErrNoCharset = errors.New("character set not supported")
|
|
|
|
// ErrEventQFull indicates that the event queue is full, and
|
|
// cannot accept more events.
|
|
ErrEventQFull = errors.New("event queue full")
|
|
)
|
|
|
|
// An EventError is an event representing some sort of error, and carries
|
|
// an error payload.
|
|
type EventError struct {
|
|
t time.Time
|
|
err error
|
|
}
|
|
|
|
// When returns the time when the event was created.
|
|
func (ev *EventError) When() time.Time {
|
|
return ev.t
|
|
}
|
|
|
|
// Error implements the error.
|
|
func (ev *EventError) Error() string {
|
|
return ev.err.Error()
|
|
}
|
|
|
|
// NewEventError creates an ErrorEvent with the given error payload.
|
|
func NewEventError(err error) *EventError {
|
|
return &EventError{t: time.Now(), err: err}
|
|
}
|