Skip to content

fishgen: Generate short flag custom completions #1121

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

Kissaki
Copy link
Contributor

@Kissaki Kissaki commented May 11, 2025

The following starts-with 'complete' where filter covers it as well.


Based on PR #1120


Example generated file, before and after this set of PRs:

ninja.fish -> ninja.nu

# dry run
extern "ninja" [
	--version					# print ninja version
	...args
]
extern "ninja" [
	-n					# dry run
	-v					# show all command lines while building
	-j					# number of jobs to run in parallel [default derived from CPUs]
	-l					# do not start if load average > N
	-k					# keep going until N jobs fail [default=1]
	-h					# show help
	-d					# enable debugging, specify debug mode
	-w					# adjust warnings, specify flags
	--verbose(-v)					# show all command lines while building
	--version					# print ninja version
	...args
]

gnome-extensions.fish -> gnome-extensions.nu

# 
extern "gnome-extensions" [

	...args
]

# Print help
extern "gnome-extensions help" [

	...args
]

# Print version
extern "gnome-extensions version" [

	...args
]

# Enable extension
extern "gnome-extensions enable" [

	...args
]

# Disable extension
extern "gnome-extensions disable" [

	...args
]

# Reset extension
extern "gnome-extensions reset" [

	...args
]

# Uninstall extension
extern "gnome-extensions uninstall" [

	...args
]

# List extensions
extern "gnome-extensions list" [
	--user					# Show user-installed extensions
	--system					# Show system-installed extensions
	--enabled					# Show enabled extensions
	--disabled					# Show disabled extensions
	--prefs					# Show extensions with preferences
	--updates					# Show extensions with updates
	--details(-d)					# Print extension details
	...args
]

# Show extension info
extern "gnome-extensions info show" [

	...args
]

# Open extension preferences
extern "gnome-extensions prefs" [

	...args
]

# Create extension
extern "gnome-extensions create" [
	--interactive(-i)					# Enter extension information interactively
	...args
]

# Package extension
extern "gnome-extensions pack" [
	--force(-f)					# Overwrite an existing pack
	--out-dir(-o)					# The directory where the pack should be created
	...args
]

# Install extension bundle
extern "gnome-extensions install" [
	--force(-f)					# Overwrite an existing extension
	...args
]
extern "gnome-extensions" [

	...args
]

extern "gnome-extensions help" [

	...args
]

extern "gnome-extensions version" [

	...args
]

extern "gnome-extensions enable" [

	...args
]

extern "gnome-extensions disable" [

	...args
]

extern "gnome-extensions reset" [

	...args
]

extern "gnome-extensions uninstall" [

	...args
]

extern "gnome-extensions list" [
	--user					# Show user-installed extensions
	--system					# Show system-installed extensions
	--enabled					# Show enabled extensions
	--disabled					# Show disabled extensions
	--prefs					# Show extensions with preferences
	--updates					# Show extensions with updates
	--details(-d)					# Print extension details
	...args
]

extern "gnome-extensions info show" [

	...args
]

extern "gnome-extensions prefs" [

	...args
]

extern "gnome-extensions create" [
	--uuid					# The unique identifier of the new extension
	--name					# The user-visible name of the new extension
	--description					# A short description of what the extension does
	--template					# The template to use for the new extension
	--interactive(-i)					# Enter extension information interactively
	...args
]

extern "gnome-extensions pack" [
	--extra-source					# Additional source to include in the bundle
	--schema					# A GSettings schema that should be included
	--podir					# The directory where translations are found
	--gettext-domain					# The gettext domain to use for translations
	--force(-f)					# Overwrite an existing pack
	--out-dir(-o)					# The directory where the pack should be created
	...args
]

extern "gnome-extensions install" [
	--force(-f)					# Overwrite an existing extension
	...args
]

@Kissaki
Copy link
Contributor Author

Kissaki commented May 11, 2025

Looks like it currently leads to flags being duplicated across commands.

/edit: Was the case before too.

Fix in #1122.

Kissaki added 4 commits May 11, 2025 19:26
'c' and 'C' conflicted, leading to get c getting the C column

Clear out 'complete ' earlier, in tokenize-complete-lines.

Parse and pair flags without values as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant