Add doc on adding support for other shells
This commit is contained in:
		
							parent
							
								
									84eaf20f9b
								
							
						
					
					
						commit
						a2dc1289a5
					
				| @ -54,3 +54,28 @@ The Bash completion script is generated (GNU make) by parsing output of `hledger | |||||||
| `hledger -h`, and `hledger <cmd> -h`. The script also uses `hledger accounts` for | `hledger -h`, and `hledger <cmd> -h`. The script also uses `hledger accounts` for | ||||||
| account name completion. I propose that the Makefile is not run at every built | account name completion. I propose that the Makefile is not run at every built | ||||||
| but rather manually when the CLI changes. | but rather manually when the CLI changes. | ||||||
|  | 
 | ||||||
|  | Completion scripts for other shells (e.g. Fish or Zsh) | ||||||
|  | ------------------------------------------------------ | ||||||
|  | 
 | ||||||
|  | You're welcome to add completion scripts for other shells. It should not be too | ||||||
|  | hard! All available hledger options and commands are already there (generated by | ||||||
|  | the Makefile). | ||||||
|  | 
 | ||||||
|  | The generated text files with options and commands are: `commands.txt`, | ||||||
|  | `generic-options.txt`, and `options-*.txt` where `*` is the subcommand. | ||||||
|  | 
 | ||||||
|  | Instructions to add support for another shell: | ||||||
|  | 
 | ||||||
|  | 1. Create e.g. `hledger-completion.fish.m4` as a template file. | ||||||
|  | 
 | ||||||
|  | 2. Add a Make rule to transform it to `hledger-completion.fish`. | ||||||
|  | 
 | ||||||
|  | 3. Use m4 commands to include hledger options and commands into your script | ||||||
|  |    template. See `hledger-completion.bash.m4` as a reference. | ||||||
|  | 
 | ||||||
|  | 4. Use `make` and then `make hledger-completion.fish` to create and test the | ||||||
|  |    completion script. | ||||||
|  | 
 | ||||||
|  | 5. Finally, if everything is working, also add the generated artifact | ||||||
|  |    `hledger-completion.fish` to the repo so that people can use it directly. | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user