> 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

Reply via email to