The problem with loading all external tags into the wordlists is that the
lexers only recognise syntactic elements, in this case "identifier" and not the
semantics that it is a typename or a function name. Also they have no
knowledge of scope and no way to pass that information to them.
The
Ok, thats the cause of current behavior. But from my point of view, it should
not be so. Then at least for every file type an own TM_GLOBAL_TYPE_MASK should
be definable. tm_workspace.c seems to be written for C/C++ language only.
I see also in other parts of source code to much focus on C and
Closed #3848 as completed.
--
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany/issues/3848#event-12550086680
You are receiving this because you are subscribed to this thread.
Message ID:
The Pascal parser only recognises functions and procedures, it would need
extending (upstream in uctags) to recognise type declarations before anything
can happen in Geany.
And as @b4n says, only type names are passed to the lexer for highlighting.
--
Reply to this email directly or view it
`symbols_find_typenames_as_string()` uses `symbols_find_typenames_as_string()`,
which itself uses `tm_workspace::typename_array`. This is filled *only* with
what is deemed a "typename", which currently has to match `TM_GLOBAL_TYPE_MASK`
(which is any of `tm_tag_class_t`, `tm_tag_enum_t`,
additional information:
* attached a pascal source file to be used to verify the problem.
[test_small.zip](https://github.com/geany/geany/files/15048965/test_small.zip)
* patch to see content of `typedefs` inside `symbols_find_typenames_as_string`
```
--- ./src/symbols.c
+++ ./src/symbols.c.new