summaryrefslogtreecommitdiffstats
path: root/pkg/gui/controllers/snake_controller.go
blob: 4217878e3e652333304915682b7df3f06acc0537 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package controllers

import (
	"github.com/jesseduffield/lazygit/pkg/gui/types"
	"github.com/jesseduffield/lazygit/pkg/snake"
)

type SnakeController struct {
	baseController
	*controllerCommon

	getGame func() *snake.Game
}

var _ types.IController = &SnakeController{}

func NewSnakeController(
	common *controllerCommon,
	getGame func() *snake.Game,
) *SnakeController {
	return &SnakeController{
		baseController:   baseController{},
		controllerCommon: common,
		getGame:          getGame,
	}
}

func (self *SnakeController) GetKeybindings(opts types.KeybindingsOpts) []*types.Binding {
	bindings := []*types.Binding{
		{
			Key:     opts.GetKey(opts.Config.Universal.NextItem),
			Handler: self.SetDirection(snake.Down),
		},
		{
			Key:     opts.GetKey(opts.Config.Universal.PrevItem),
			Handler: self.SetDirection(snake.Up),
		},
		{
			Key:     opts.GetKey(opts.Config.Universal.PrevBlock),
			Handler: self.SetDirection(snake.Left),
		},
		{
			Key:     opts.GetKey(opts.Config.Universal.NextBlock),
			Handler: self.SetDirection(snake.Right),
		},
		{
			Key:     opts.GetKey(opts.Config.Universal.Return),
			Handler: self.Escape,
		},
	}

	return bindings
}

func (self *SnakeController) Context() types.Context {
	return self.contexts.Snake
}

func (self *SnakeController) SetDirection(direction snake.Direction) func() error {
	return func() error {
		self.getGame().SetDirection(direction)
		return nil
	}
}

func (self *SnakeController) Escape() error {
	return self.c.PushContext(self.contexts.Submodules)
}
emplates/part.items.php:44 msgid "Cant play audio format" msgstr "Impossible de jouer ce format audio" #: templates/part.items.php:57 msgid "Keep unread" msgstr "Garder non lu" #: templates/part.listfeed.php:37 templates/part.listfeed.php:55 msgid "Delete website" msgstr "Supprimer cette page web" #: templates/part.listfolder.php:14 msgid "Collapse" msgstr "Replier" #: templates/part.listfolder.php:32 templates/part.listfolder.php:48 msgid "Delete folder" msgstr "Supprimer le répertoire" #: templates/part.listfolder.php:54 msgid "Rename folder" msgstr "Renommer le répertoire" #: templates/part.settings.php:13 msgid "Import / Export OPML" msgstr "Import / Export OPML" #: templates/part.settings.php:17 templates/part.settings.php:19 #: templates/part.settings.php:47 templates/part.settings.php:49 msgid "Import" msgstr "Importer" #: templates/part.settings.php:23 templates/part.settings.php:27 #: templates/part.settings.php:30 templates/part.settings.php:32 msgid "Export" msgstr "Exporter" #: templates/part.settings.php:36 msgid "Error when importing: file does not contain valid OPML" msgstr "Erreur lors de l'import : le fichier spécifié n'est pas un fichier OPML valide" #: templates/part.settings.php:42 msgid "Import Google Reader JSON" msgstr "Importer depuis le format JSON de Google Reader" #: templates/part.settings.php:43 msgid "" "To import starred and shared articles from Google \n" "\t\t\tReader please upload the .json files from the Google Takeout archive" msgstr "Pour importer les articles épinglés et partagés depuis Google \n\t\t\tReader, veuillez importer les fichiers .json récupérés depuis l'archive Google Takeout" #: templates/part.settings.php:53 msgid "Error when importing: file does not contain valid JSON" msgstr "Erreur lors de l'import : le fichier spécifié n'est pas un fichier JSON valide" #: templates/part.showall.php:2 msgid "Show all" msgstr "Tout afficher" #: templates/part.showall.php:6 msgid "Show only unread" msgstr "Montrer uniquement les articles non-lus"