Closed TaylanUB closed 11 years ago
Objective-C support will be very useful!
It'd be nice if we could consolidate the 3-4 clang sources I know of for the "official" version in the auto-complete organization. Keeping all of these repos in sync will be a pain.
That's a good idea.
It should definitely use a persistent clang process, since otherwise it's way too slow. I don't know of any other than Golevka's code to do this, and hopefully with a bit of work we can get the elisp to a state where it's worthy for the official AC project. My changes make it follow some of the most fundamental elisp conventions, but it's still very quirky from what I see. (Can we even use it on two files at once? Also, it doesn't start the completion process automatically.)
Your e-mail address shown on GitHub doesn't seem to work, so I'm sending this from here:
Hi, you might've noted that I forked your project. I merged it (manually) with hara's latest version of auto-complete-clang (which is the latest code from brianjcj plus Objective-C support), and also did a lot of clean-up to meet elisp-coding standards. I might have broken things while doing all this, and can't reliably test it myself because I don't know how exactly your original code is supposed to behave (I probably have a different clang version and all). So it would be very friendly if you could test my version and see if it behaves well. If it does, I would ask you to merge it and continue working from there.
In case you wonder what "elisp-coding standards" I'm talking about, the biggest issue with your code was that it defines functions and variables with generic names like
completion-proc
,filter-output
,parse-completion-results
,send-source-code
, etc., which all end up in the global function/variable namespaces of the emacs user. Imagine how many different elisp packages/libraries might be using a generic function like "filter-output"... So to avoid clashes, everyone should adhere to the convention that all functions and variables in a package/library are prefixed with a unique identifier of the package. E.g. in this case we useac-clang-async-filter-output
.Regards, and thanks for the code Taylan