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

Add annotations on interface methods to their implementations #390

Closed
Gert-dev opened this issue May 4, 2018 · 1 comment
Closed

Add annotations on interface methods to their implementations #390

Gert-dev opened this issue May 4, 2018 · 1 comment

Comments

@Gert-dev
Copy link
Owner

Gert-dev commented May 4, 2018

We could add annotations to interface methods in interfaces themselves, allowing the user to navigate to the definition of the method in classes that implement the method. This involves using the directImplementors property of the class information to analyze classes that directly use the interface, as well as any subclasses (recursively) of those classes.

Note that the following applies:

  • Classes must implement the methods of an interface themselves, unless they are abstract.
  • Interfaces can also extend other interfaces, so the children of an interface must also be checked.

Care should be taken that this does not hurt performance (especially the recursing). Perhaps the recursing itself can be delayed until the intention is clicked and directInterfaces can be used as an indication if the annotation should be shown.

We could use something like the intentions package [1] to show a list of matches if there is more than one, allowing the user to click the one he wants to navigate to. An alternative would be to show a view, much like the "Find in project" in Atom itself. This view could show a spinner while matching is occurring.

[1] https://atom.io/packages/intentions

@Gert-dev
Copy link
Owner Author

Replaced by this Serenata ticket as this is now handled by the server since #460.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant