[Github-comments] [geany/geany] New tagmanager query module (#1187)

Matthew Brush notifications at xxxxx
Fri Aug 26 00:14:00 UTC 2016


> Wouldn't it be possible to feed the symbol information (e.g. from llvm) to TM (and extend TM to do what's necessary)?

It surely would be possible, but I'm not sure if TM is up to the job (I don't know enough about it to evaluate that). The main goal is to get proper support for C and C++, which as @elextr always mentions, is quite poor at present (in C it doesn't support pointer dereferences, local types, local variables, parameters, and additionally in C++ it doesn't support template arguments, non-global symbols, lambda parameters or lambda locals, in most languages it switches modes randomly between useful completions and everything under the sun, etc).

> I'm not familiar with LLVM/clang so I don't know what would be necessary for this and if something like this is doable.

The API basically that you create a TranslationUnit by parsing source files, and from that you get access to the complete AST (manually walkable or via a visitor API), and then it has special functions made for IDE's that works on the translation units, like it has one "[codeCompleteAt](http://clang.llvm.org/doxygen/group__CINDEX__CODE__COMPLET.html#ga50fedfa85d8d1517363952f2e10aa3bf)" which provides a list of every possible valid thing that could be completed there and still make valid code, or "[tokenize](http://clang.llvm.org/doxygen/group__CINDEX__LEX.html#ga6b315a71102d4f6c95eb68894a3bda8a)" which quickly lexes/parses the code providing a list of "tokens" which can be used for to do stuff like semantic-highlighting (eg. unlike currently how Scintilla will highlight all same named tokens alike, you can have the class "string" in namespace std highlighted as a class when used as such or if you name a variable "string", have it coloured as an identifier). It also has all kinds of other useful stuff like an [API for diagnostics](http://clang.llvm.org/doxygen/group__CINDEX__DIAG.html) (eg. to replace the weird regex-based makefile output parser currently used in Geany), and a lot more.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/pull/1187#issuecomment-242585178
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.geany.org/pipermail/github-comments/attachments/20160825/a7374d52/attachment.html>


More information about the Github-comments mailing list