abo-abo / function-args

C++ completion for GNU Emacs
120 stars 10 forks source link

moo-complete sometimes does not use Helm interface for completions #6

Closed tuhdo closed 9 years ago

tuhdo commented 10 years ago

For some data types (I have only tried std::string), moo-complete displays plain *Completion* buffer, while others got Helm interface fine.

out

abo-abo commented 10 years ago

This happens in this case because std::string is a typedef of std::basic_string and semantic method that I was using didn't expand it. I've fixed it for now, let me know if more similar issues appear.

zijianyue commented 9 years ago

I think I encounter the same issue as below picture shows. image image

The related structure is typedef struct { slong Longitude; slong Latitude; } GeoLocation_t;

abo-abo commented 9 years ago

moo-complete falls back to (semantic-ia-complete-symbol (point)) in case it becomes confused.

If you give me a source file for which this happens, I'll see what I can do to fix it.

zijianyue commented 9 years ago

//1.h typedef struct { slong Longitude; slong Latitude; } GeoLocation_t;

typedef struct tagInfo_t { long lAbsPosx; long lAbsPosy; }Info_t;

//1.cpp

include "1.h"

Info_t g_stInfo;

void GetPos( GeoLocation_t* pstPos )const { pstPos->Latitude = g_stInfo.lAbsPosx; }

The code above can reproduce the issue.

abo-abo commented 9 years ago

Should be fixed now. I hope I didn't break anything in some other place. I'd welcome some tests if you ever want to contribute:)

zijianyue commented 9 years ago

I just tested it works well now