Merge branch 'fish-completion' of https://github.com/scorphus/kitty

This commit is contained in:
Kovid Goyal 2018-09-06 07:04:54 +05:30
commit e9975cb7eb
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 33 additions and 0 deletions

View File

@ -387,6 +387,16 @@ The important thing above is to make sure the call to |kitty| to load the zsh
completions happens after the call to :file:`compinit`. completions happens after the call to :file:`compinit`.
fish
~~~~~~~~
Add the following to your :file:`~/.config/fish/config.fish`
.. code-block:: sh
kitty + complete setup fish | source
Changelog Changelog
------------------ ------------------

View File

@ -56,6 +56,14 @@ kitty_completions() {
} }
complete -o nospace -F kitty_completions kitty complete -o nospace -F kitty_completions kitty
''',
'fish': '''
function __kitty_completions
# Send all words up to the one before the cursor
commandline -cop | kitty +complete fish
end
complete -f -c kitty -a "(__kitty_completions)"
''', ''',
} }
@ -86,6 +94,11 @@ def bash_input_parser(data):
return words, new_word return words, new_word
@input_parser
def fish_input_parser(data):
return data.rstrip().splitlines(), True
@output_serializer @output_serializer
def zsh_output_serializer(ans): def zsh_output_serializer(ans):
lines = [] lines = []
@ -117,6 +130,16 @@ def bash_output_serializer(ans):
# }}} # }}}
@output_serializer
def fish_output_serializer(ans):
lines = []
for matches in ans.match_groups.values():
for word in matches:
lines.append(shlex.quote(word))
# debug('\n'.join(lines))
return '\n'.join(lines)
def completions_for_first_word(ans, prefix, entry_points, namespaced_entry_points): def completions_for_first_word(ans, prefix, entry_points, namespaced_entry_points):
cmds = ['@' + c for c in cmap] cmds = ['@' + c for c in cmap]
ans.match_groups['Entry points'] = { ans.match_groups['Entry points'] = {