mirror of
https://github.com/kovidgoyal/kitty.git
synced 2024-09-20 02:57:19 +03:00
Completion for kitty @ action
This commit is contained in:
parent
54548931b5
commit
97e2d41233
@ -32,6 +32,7 @@
|
||||
import kitty.constants as kc
|
||||
from kittens.tui.operations import Mode
|
||||
from kittens.tui.spinners import spinners
|
||||
from kitty.actions import get_all_actions
|
||||
from kitty.cli import (
|
||||
CompletionSpec,
|
||||
GoOption,
|
||||
@ -688,6 +689,15 @@ def update_at_commands() -> None:
|
||||
def update_completion() -> None:
|
||||
with replace_if_needed('tools/cmd/completion/kitty_generated.go'):
|
||||
generate_completions_for_kitty()
|
||||
|
||||
with replace_if_needed('tools/cmd/at/kitty_actions_generated.go'):
|
||||
print("package at")
|
||||
print("const KittyActionNames = `", end='')
|
||||
for grp, actions in get_all_actions().items():
|
||||
for ac in actions:
|
||||
print(ac.name)
|
||||
print('`')
|
||||
|
||||
with replace_if_needed('tools/cmd/edit_in_kitty/launch_generated.go'):
|
||||
print('package edit_in_kitty')
|
||||
print('import "kitty/tools/cli"')
|
||||
|
@ -51,7 +51,10 @@ class Action(RemoteCommand):
|
||||
using this option means that you will not be notified of failures.
|
||||
''' + '\n\n' + MATCH_WINDOW_OPTION
|
||||
|
||||
args = RemoteCommand.Args(spec='ACTION [ARGS FOR ACTION...]', json_field='action', minimum_count=1)
|
||||
args = RemoteCommand.Args(
|
||||
spec='ACTION [ARGS FOR ACTION...]', json_field='action', minimum_count=1,
|
||||
completion=RemoteCommand.CompletionSpec.from_string('type:special group:complete_actions')
|
||||
)
|
||||
|
||||
def message_to_kitty(self, global_opts: RCOptions, opts: 'CLIOptions', args: ArgsType) -> PayloadType:
|
||||
return {'action': ' '.join(args), 'self': opts.self, 'match_window': opts.match}
|
||||
|
26
tools/cmd/at/complete_actions.go
Normal file
26
tools/cmd/at/complete_actions.go
Normal file
@ -0,0 +1,26 @@
|
||||
// License: GPLv3 Copyright: 2024, Kovid Goyal, <kovid at kovidgoyal.net>
|
||||
|
||||
package at
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"kitty/tools/cli"
|
||||
"kitty/tools/utils"
|
||||
)
|
||||
|
||||
var _ = fmt.Print
|
||||
|
||||
func complete_actions(completions *cli.Completions, word string, arg_num int) {
|
||||
if arg_num < 2 {
|
||||
scanner := utils.NewLineScanner(KittyActionNames)
|
||||
mg := completions.AddMatchGroup("Actions")
|
||||
for scanner.Scan() {
|
||||
line := strings.TrimSpace(scanner.Text())
|
||||
if line != "" && strings.HasPrefix(line, word) {
|
||||
mg.AddMatch(line)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user