Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A connection / hover of generic procedure or linked procedure #24

Open
jayaus opened this issue Aug 4, 2020 · 1 comment
Open

A connection / hover of generic procedure or linked procedure #24

jayaus opened this issue Aug 4, 2020 · 1 comment
Labels
bug Something isn't working upstream

Comments

@jayaus
Copy link

jayaus commented Aug 4, 2020

From the example blow, there are some connection issues.

TYPE T_EX
INTEGER :: A = 0

CONTAINS
FINAL :: del_EX
PROCEDURE, PRIVATE :: sub_a
PROCEDURE, PRIVATE :: sub_b
PROCEDURE, PRIVATE :: sub_d
PROCEDURE, PUBLIC :: sub_sp => sub_c
GENERIC, PUBLIC :: sub => sub_a, sub_b
GENERIC, PUBLIC :: subsub => sub_d
END TYPE T_EX

TYPE(T_EX) :: test
CALL test%sub(...)

  1. On del_EX, sub_c, sub_c, subsub, "go to implementation" shows "no implementation found"
  2. At "CALL test%", autocomplete cannot find generic procedures like sub or subsub.
  3. On %sub, a hovering does not work. That is, arguments of subroutine cannot be shown. It would be great to see all the list of subroutines like module procedures in "interface ... end interface".

It would be really appreciated to check some expected functionalities like hovering/autocomplete/go to implementation regarding "generic" procedures.

Thanks.

@hansec hansec added bug Something isn't working upstream labels Oct 2, 2020
@hansec
Copy link
Owner

hansec commented Oct 2, 2020

Thanks for the report and sorry for the delay. Most of these issues are due to the fact that GENERIC and FINAL statements are not yet supported in the underlying Fortran language server. I have created two upstream issues #175 and #176 to track those bugs. I will work on correcting them as soon as possible.

As for sub_c, currently "go to implementation" is only supported for the procedure method (sub_sp in this case) not the bound procedure. Does "go to definition" work for sub_c in your example? It might be good for "go to implementation" to operate as a superset of "go to definition", but I want to look into how this functions for other language servers to stay consistent.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working upstream
Projects
None yet
Development

No branches or pull requests

2 participants