今回の質問
未使用のメソッドを見つける方法が提案されています。tooling APIを使うようです。
リンクがおかしかったので、私が付け直します。--> [SymbolTable:(https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_symboltable.htm)
しかしこの方法だとVisualforceからの呼び出しが参照できないようです。Visualforceを使ったカスタムコンポーネントが多いと問題になりそうです。
Note, as this is only scanning the apex classes it won't detect declarative references from Visualforce markup.
ただ、Tooling API自体は Visualforce にも対応しているので、問題はないことも言われています。
ここにApexのコードを使った使用例が紹介されています。
https://andyinthecloud.com/2013/02/02/spring-cleaning-apex-code-with-the-tooling-api/
It should be noted that the Tooling API does also appear to support Visualforce ‘components’ ( I am assuming this to mean in a general sense, so thus VF pages). The principles appear the same in terms of how you interact with it, see the ApexComponentMember object in the docs. As such currently the above code does not consider references to methods on VF pages, a topic for another blog and/or fellow contributor to the Github repo perhaps…
試しにTooling APIでSymbolTableを検索してみましたが...
まさかのエラーで撃沈でした...
事前にコンパイルが必要みたいな感じですね。もう少し調査が必要そうです。
SymbolTableのキャッシュされたバージョンがない場合、バックグラウンドでコンパイルされるため、クエリに予想より時間がかかる可能性があります。ApexClass から返された SymbolTable には参照が含まれていません。参照を含む SymbolTable を取得するには、ApexClassMemberを使用します。
Postmanを使うと簡単にTooling APIにアクセスできます。
クエリパラメータの覚え
select+Id,DurableId,FunctionId,Type+from+FormulaFunctionAllowedType+where+FunctionId='SUBSTITUTE'
select+Id,externalReferences,methods,name+from+SymbolTable