It’s been three weeks since I started
working on the plugin, and now it’s finally in a working state. I’ll get around to finally adding a README to the project soon, but in the meantime here’s a bunch of things in no particular order:
Parsing and compiling the file takes around 1-3 seconds depending on the size of the file and the sizes of all includes, but it’s completely asynchronous and as such will later be done as part of a visit-file hook.
Once the parsing is done and the results cached, completions take less than 200 ms for member variables/functions and around 500 to 800ms for variable declarations.
It’s been hooked up with AutoComplete, albeit a slightly modified version that provides more information about each completion and supports duplicates (for overloaded functions).
Compilation flags for clang are supplied via directory-local variables. I might switch to eproject given how anal Emacs is about “unsafe” directory-local variables.
Any compilation errors are printed to a separate buffer.
And here’s what I will be working on next, again in no particular order:
Add a README to the project
Find a better place to store compilation flags
Add more logging
Suppress annoying messages printed by deferred and epc
And some long-term goals:
Highlight lines with compilation errors/warnings
Jump to declaration/definition
Display docstrings
In the meantime, here are some screenshots of the completion in action: