git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v5 3/3] completion: add git status

From
Thomas Braun <thomas.braun@virtuell-zuhause.de>
Date
Jun 10, 2016, 10:12 UTC
Message-ID
<20160610101206.5760-4-thomas.braun@virtuell-zuhause.de>
In-Reply-To
<20160610101206.5760-1-thomas.braun@virtuell-zuhause.de>
Signed-off-by: Thomas Braun <thomas.braun@virtuell-zuhause.de>
---
 contrib/completion/git-completion.bash | 50 ++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 0bf67c9..ddda5e5 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1826,6 +1826,56 @@ _git_stage ()
 	_git_add
 }
 
+_git_status ()
+{
+	local complete_opt
+	local untracked_state
+
+	case "$cur" in
+	--ignore-submodules=*)
+		__gitcomp "none untracked dirty all" "" "${cur##--ignore-submodules=}"
+		return
+		;;
+	--untracked-files=*)
+		__gitcomp "$__git_untracked_file_modes" "" "${cur##--untracked-files=}"
+		return
+		;;
+	--column=*)
+		__gitcomp "
+			always never auto column row plain dense nodense
+			" "" "${cur##--column=}"
+		return
+		;;
+	--*)
+		__gitcomp "
+			--short --branch --porcelain --long --verbose
+			--untracked-files= --ignore-submodules= --ignored
+			--column= --no-column
+			"
+		return
+		;;
+	esac
+
+	untracked_state="$(__git_get_option_value "-u" "--untracked-files=" \
+		"$__git_untracked_file_modes" "status.showUntrackedFiles")"
+
+	case "$untracked_state" in
+	no)
+		# --ignored option does not matter
+		complete_opt=
+		;;
+	all|normal|*)
+		complete_opt="--cached --directory --no-empty-directory --others"
+
+		if [ -n "$(__git_find_on_cmdline "--ignored")" ]; then
+			complete_opt="$complete_opt --ignored --exclude=*"
+		fi
+		;;
+	esac
+
+	__git_complete_index_file "$complete_opt"
+}
+
 __git_config_get_set_variables ()
 {
 	local prevword word config_file= c=$cword
-- 
2.8.4.windows.1
Previous: Thomas BraunNext: Thomas Braun
Message 31 of 33 in “completion: create variable for untracked file modes”
  1. 1/2 completion: create variable for untracked file modesThomas Braun, May 31, 2016
  2. Jeff KingJun 1, 2016
  3. Junio C HamanoJun 1, 2016
  4. Thomas BraunJun 1, 2016
  5. 1/2 completion: create variable for untracked file modesThomas Braun, Jun 1, 2016
  6. SZEDER GáborJun 1, 2016
  7. Thomas BraunJun 2, 2016
  8. 2/2 completion: add git statusThomas Braun, Jun 1, 2016
  9. SZEDER GáborJun 1, 2016
  10. Thomas BraunJun 2, 2016
  11. 1/2 completion: factor out untracked file modes into a variableThomas Braun, Jun 2, 2016
  12. 2/2 completion: add git statusThomas Braun, Jun 2, 2016
  13. Junio C HamanoJun 2, 2016
  14. Thomas BraunJun 3, 2016
  15. Junio C HamanoJun 3, 2016
  16. Jeff KingJun 3, 2016
  17. Junio C HamanoJun 3, 2016
  18. Thomas BraunJun 3, 2016
  19. 0/3 support completion for git statusThomas Braun, Jun 3, 2016
  20. 1/3 completion: factor out untracked file modes into a variableThomas Braun, Jun 3, 2016
  21. 2/3 completion: add __git_get_option_value helperThomas Braun, Jun 3, 2016
  22. SZEDER GáborJun 10, 2016
  23. Thomas BraunJun 25, 2016
  24. 3/3 completion: add git statusThomas Braun, Jun 3, 2016
  25. Junio C HamanoJun 6, 2016
  26. Thomas BraunJun 7, 2016
  27. Junio C HamanoJun 6, 2016
  28. 0/3 completion: add git statusThomas Braun, Jun 10, 2016
  29. 2/3 completion: add __git_get_option_value helperThomas Braun, Jun 10, 2016
  30. 1/3 completion: factor out untracked file modes into a variableThomas Braun, Jun 10, 2016
  31. 3/3 completion: add git statusThomas Braun, Jun 10, 2016
  32. 1/3 completion: factor out untracked file modes into a variableThomas Braun, Jun 10, 2016
  33. 3/3 completion: add git statusThomas Braun, Jun 10, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.