Could be a macro but maybe could use some extra hooks into nedit to get the full power out of it.
For developers, code completion is not the standard search-for-this-substring-and-write-the-full-string. It likely means that you want to substring to complete to a function name that is written in a different file. It also means that if you want to complete this substring "classname->functio" that you only have to look at memberfunctions of the class "classname".
First idea: use the tags file
It contains all relevant text and is structured so searching in it should be fast. The information could be used to even prompt for alternatives. It has scope information (eg about which member is defined in what class).
Even type information. eg to complete "myclass->myfunction(param1, para" you have to look only for variables that are integer because you can lookup its declaration "void myfunction(long,int);"