-
Notifications
You must be signed in to change notification settings - Fork 70
find-symbol doesn't work on macros #47
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
Comments
i would argue this is a known limitation and solving it would be an enhancement. but just my 5c... deffo top prio for next bigish release |
just sharing some of my notes/thoughts on this as it is not trivial and finding a simple enough solution will be hard ;) two sides of the macro problem for find symbols (and all features based on on it):
root cause: they are expanded before the AST build which is necessary to have a AST which represents code that compiles. |
#79 is basically 2. |
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
IIUC, one bad side-effect of this issue is that |
We handle macros using a different mechanism in |
@expez Ok, I'll try to create one. |
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
We use rewrite-clj to traverse the source files using zippers. This means we can can find macros in some situations where we cannot build an AST. The current solution has the following limitations: - No support for (:use ... :rename {the-macro new-name}) - The position data is for the macro name instead of the form containing the macro. This is different from the result returned by analyzing the ast for functions. As this only happens for the definition itself I don't see any negative consequences by this difference.
No description provided.
The text was updated successfully, but these errors were encountered: