Dear Geany devs,
I have opened the two pull requests
https://github.com/geany/geany/pull/145 https://github.com/geany/geany/pull/146
that fix two problems with (modern) Fortran tag generation.
The problem addressed by the first PR concerns forall blocks. The (secondary keyword) 'forall in 'end forall' was not interpreted as the end of a forall block. Instead, 'end forall' is interpreted as the end statement for higher level blocks. Compare the attached screenshots forall_module.png and unproblematic_module.png (sources are also atttached). You'll note that in the former the function two() shows as a function that is not part of the module.
The second PR fixes tag generation for procedure pointers. Declarations such as 'procedure(my_proc), pointer :: my_pointer' are now treated just like declarations of e.g. a real variable. To illustrate what's going wrong at the moment please compare procedure_pointer_module.f90 and unproblematic_module.png. Note that in the former the pointer variable 'my_pointer' is missing in the symbol list.
The screenshot with_fixes.png shows the patched symbol browser for a module that has both problematic constructs. The problems are gone.
I hope someone finds the time to review both PRs. Thanks!
Best regards
Alex
Le 12/06/2013 21:08, Alexander Eberspächer a écrit :
Dear Geany devs,
I have opened the two pull requests
https://github.com/geany/geany/pull/145 https://github.com/geany/geany/pull/146
that fix two problems with (modern) Fortran tag generation.
[...]
I hope someone finds the time to review both PRs. Thanks!
Looks just fine, merged (cherry-picked actually). I added test files based on the attachments of your mail (now we have a test suite for this :).
Thanks!
Cheers, Colomban