More specifically, this is defined in 
/usr/share/bash-completion/completions/make and includes a second function 
`_make_target_extract_script` that does a lot of the work.

-Kevin

> On Sep 11, 2014, at 3:00 PM, Kevin Ballard <ke...@sb.org> wrote:
> 
> It appears bash uses a function called `_make` to do it. `type _make` will 
> print out its definition.
> 
> -Kevin
> 
>> On Sep 11, 2014, at 2:49 PM, Mandeep Sandhu <mandeepsandhu....@gmail.com> 
>> wrote:
>> 
>> Thanks for the info.
>> 
>> I'm using fish under Ubuntu. Bash on Ubuntu does completion of make
>> targets from the included *.make files. I'll look into how they do it
>> and update the fish one if I can.
>> 
>> -mandeep
>> 
>> On Thu, Sep 11, 2014 at 2:05 PM, Kevin Ballard <ke...@sb.org> wrote:
>>> __fish_print_make_targets is a fishscript function defined in the standard 
>>> functions dir $__fish_datadir/functions. In the Fish source, this is the 
>>> folder share/functions. The current implementation is just a grep over the 
>>> first file from the list [GNUmakefile, Makefile, makefile].
>>> 
>>> Also, what do you mean by "bash does this"? The stock Bash 
>>> 3.2.51(1)-release included on OS X does not have completion for make. Did 
>>> you install a set of bash completions? In any case, you could look at how 
>>> the bash completion works and update the Fish implementation for the same 
>>> functionality, and then submit a pull request.
>>> 
>>> -Kevin
>>> 
>>>> On Sep 10, 2014, at 12:02 PM, Mandeep Sandhu <mandeepsandhu....@gmail.com> 
>>>> wrote:
>>>> 
>>>> Hi All,
>>>> 
>>>> I was working on a project which was using makefiles for building a
>>>> bunch of stuff.
>>>> 
>>>> This Makefile "includes" a lot of other *.make files from other
>>>> sub-projects in order to build them.
>>>> 
>>>> However, I see thast fish can only do completions for the current
>>>> Makefile targets and doesn't seem to go into the sub-project's *.make
>>>> files to suggest targets (bash does this).
>>>> 
>>>> Is this something that that's possible?
>>>> 
>>>> The current fish completion uses '__fish_print_make_targets' to get
>>>> the targets. I guess this only looks at Makefile in the current dir?
>>>> 
>>>> Is this already done in some fish release? Or should I work on adding it?
>>>> 
>>>> Thanks,
>>>> -mandeep
>>>> 
>>>> ------------------------------------------------------------------------------
>>>> Want excitement?
>>>> Manually upgrade your production database.
>>>> When you want reliability, choose Perforce
>>>> Perforce version control. Predictably reliable.
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>> _______________________________________________
>>>> Fish-users mailing list
>>>> Fish-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/fish-users
>>> 
> 
> ------------------------------------------------------------------------------
> Want excitement?
> Manually upgrade your production database.
> When you want reliability, choose Perforce
> Perforce version control. Predictably reliable.
> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk_______________________________________________
> Fish-users mailing list
> Fish-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/fish-users

Attachment: smime.p7s
Description: S/MIME cryptographic signature

------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Fish-users mailing list
Fish-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/fish-users

Reply via email to