On 2016-08-31 06:30 AM, Thomas Martitz wrote:
Am 31.08.2016 um 13:23 schrieb Lex Trotman:
[...]
Both of these are C++ specific semantics, (types generated by template instantiation and argument dependent lookup). I don't believe TM should be be expanded to include such knowledge.
Why not? TM could have separate tags for each known template instance and know which of these applies to someAs, based on information provided by a ft-plugin. Then the rest would work.
Besides, template instantiation requires compiling the units IIUC, which is probably not gonna happen ever? At least not on every keystroke as done currently.
I can't speak to all compiler libraries, but at least libclang, libpython and libvala "compile" the source (well just the front-end of the compiler is needed). They literally use the built-in compiler front ends to understand the code. In the case of libclang, it additionally provides helpful methods for performing IDE-related features on the AST, while say with libvala, the ft-plugin would be required to perform it's own analysis of the AST to implement those feaures, which is still a lot less work than in Geany/TM since it has access to the full AST/context and the ft-plugin need not fear encoding language specific semantics into its logic.
Cheers, Matthew Brush