imagine I type something like
here I'd like to press Ctrl+Space and get the list of files (for example, sstream, string, etc if it's C++), which can be included according to current project settings (standard path, user search path etc).
As you know those headers have often no and/or no common file extension. So one would have to offer *all* files found in *all* search path's because they could potentially be a file to include.
Yes, you are right, it should work this way.
We could cope with too large number of possible completions as bash does (like
"Display all 1547 possibilities? (y or n)"), also we could introduce a setting with max. files to show, and just show nothing is the resultset exceeds this number, and wait until user enters another letter and makes the resultset less. Also we could place to settings a list of extensions that a user wants to see in the list - as extension strongly depends on project.
There are many way to improve performance and usability.
And, actually, it depends on how user will use it. Request all possible completions doesn't make sense anyway (as well as requesting all possible completions in shell), but when you start typing a long path like in my example and don't want to type it by hand, it would help a lot.