[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
This revision was automatically updated to reflect the committed changes. Closed by commit rL306555: [Bash-autocompletion] Check clang version in Bash (authored by yamaguchi). Changed prior to commit: https://reviews.llvm.org/D34607?vs=103884=104435#toc Repository: rL LLVM https://reviews.llvm.org/D34607 Files: cfe/trunk/utils/bash-autocomplete.sh Index: cfe/trunk/utils/bash-autocomplete.sh === --- cfe/trunk/utils/bash-autocomplete.sh +++ cfe/trunk/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,14 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # If clang is old that it does not support --autocomplete, + # fall back to the filename completion. + if [[ "$?" != 0 ]]; then +_filedir +return + fi + if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then Index: cfe/trunk/utils/bash-autocomplete.sh === --- cfe/trunk/utils/bash-autocomplete.sh +++ cfe/trunk/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,14 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # If clang is old that it does not support --autocomplete, + # fall back to the filename completion. + if [[ "$?" != 0 ]]; then +_filedir +return + fi + if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
teemperor accepted this revision. teemperor added a comment. Works as intended, good job! https://reviews.llvm.org/D34607 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
ruiu accepted this revision. ruiu added a comment. This revision is now accepted and ready to land. LGTM https://reviews.llvm.org/D34607 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
yamaguchi updated this revision to Diff 103884. yamaguchi added a comment. Update patch. https://reviews.llvm.org/D34607 Files: clang/utils/bash-autocomplete.sh Index: clang/utils/bash-autocomplete.sh === --- clang/utils/bash-autocomplete.sh +++ clang/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,14 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # If clang is old that it does not support --autocomplete, + # fall back to the filename completion. + if [[ "$?" != 0 ]]; then +_filedir +return + fi + if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then Index: clang/utils/bash-autocomplete.sh === --- clang/utils/bash-autocomplete.sh +++ clang/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,14 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # If clang is old that it does not support --autocomplete, + # fall back to the filename completion. + if [[ "$?" != 0 ]]; then +_filedir +return + fi + if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
ruiu added inline comments. Comment at: clang/utils/bash-autocomplete.sh:28 + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # Check if --autocomplete is supported in user's clang version. + if [[ "$?" != 0 ]]; then It is probably a bit better if you mention that it falls back to the default filename completion if --autocomplete is not available. How about this: If clang is old that it does not support --autocomplete, fall back to the filename completion. Comment at: clang/utils/bash-autocomplete.sh:31 +_filedir +return 0 + fi If it is the same as just `return`, please remove `0`. Comment at: clang/utils/bash-autocomplete.sh:33 + fi if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) nit: it is a bit easier to read if you insert a newline here to separate code blocks. https://reviews.llvm.org/D34607 ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D34607: [Bash-autocompletion] Check clang version in Bash
yamaguchi created this revision. Add check if user's clang version supports --autocomplete or not. If not, we just autocomplete files. https://reviews.llvm.org/D34607 Files: clang/utils/bash-autocomplete.sh Index: clang/utils/bash-autocomplete.sh === --- clang/utils/bash-autocomplete.sh +++ clang/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,12 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # Check if --autocomplete is supported in user's clang version. + if [[ "$?" != 0 ]]; then +_filedir +return 0 + fi if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then Index: clang/utils/bash-autocomplete.sh === --- clang/utils/bash-autocomplete.sh +++ clang/utils/bash-autocomplete.sh @@ -1,7 +1,7 @@ # Please add "source /path/to/bash-autocomplete.sh" to your .bashrc to use this. _clang() { - local cur prev words cword arg + local cur prev words cword arg flags _init_completion -n : || return # bash always separates '=' as a token even if there's no space before/after '='. @@ -24,7 +24,12 @@ arg="$w2=,$cur" fi - local flags=$( clang --autocomplete="$arg" ) + flags=$( clang --autocomplete="$arg" 2>/dev/null ) + # Check if --autocomplete is supported in user's clang version. + if [[ "$?" != 0 ]]; then +_filedir +return 0 + fi if [[ "$cur" == '=' ]]; then COMPREPLY=( $( compgen -W "$flags" -- "") ) elif [[ "$flags" == "" || "$arg" == "" ]]; then ___ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits