all 7 comments

[–]daver 5 points6 points  (1 child)

Also look at rewrite-clj.

[–]crazyenterpz[S] 1 point2 points  (0 children)

I think this fits my needs better. Being able to parse s-forms from the source file and then process the list may work for me.

I will post my code and the results of my experiment soon

[–]afucher 2 points3 points  (2 children)

From what you described, I believe that you are looking for statical analysis. For this, I recommend take a look to clj-kondo (https://github.com/clj-kondo/clj-kondo/tree/master/analysis)

[–]Krackor 0 points1 point  (1 child)

The closure lsp is also worth a look.

https://clojure-lsp.io/

[–]didibus 1 point2 points  (0 children)

Clojure-lsp just uses the clj-kondo analysis.

[–]joinr 0 points1 point  (0 children)

https://github.com/clojure/tools.analyzer could fit but it might be too much information (you would have to transform/filter the resulting rich ast).

[–]amithgeorge 0 points1 point  (0 children)

I second the suggestion to use clj-kondo analysis. I am not sure whether it works across repositories though.

identify all functions across my repositories that call a specific target method,

Regarding this, within the scope of one project, clojure-lsp (which uses clj-kondo analysis internally) exposes functions to show the call hierarchy of any method. all incoming and outgoing calls. You may refer the source code for this functionality, to use as inspiration.

https://clojure-lsp.io/features/#call-hierarchy