redhat-developer / redhat-developer/vscode-java

"Show Call Hierarchy" should have the ability to filter calls, or apply name filter patterns

オープン
#2,179 コメント 3 件 リアクション 4 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

enhancement navigation upstream
主要言語
TypeScript
スター
2.3k
フォーク
546
平均マージ
20時間 1分
マージ済み PR(30日)
11

説明

When I use Show Call Hierarchy on a property in a Java class object that is frequently used in both the main source code, as well as in the unit tests, the Call Hierarchy list would display a bunch of results. Because, the results include both the main source code and unit tests references, there isn't a way to automatically exclude certain folder directories or paths out from unwanted invocations.

I would like to request for the feature to apply any one of the following options:

  • Filter test codes. (unit test codes, or codes residing under src/test/java)
  • Apply name filter patterns. (Only includes reference names that matches the given filter patterns.)
  • Limit the call depth of a given number. (Only goes down in depth up to the given number, inclusive.)

This feature is similar to Eclipse's "Filter Calls" dialog:

image

This is accessed by invoking "Show Call Hierarchy" on a class member, then opening "Filters" in the "More Options" menu in Eclipse IDE.

Currently, we don't have anything similar to this in Visual Studio Code with RedHat Java extensions installed.

Environment
  • Operating System: Ubuntu 20.04.2 LTS
  • JDK version: AdoptOpenJDK 11 (jdk-11.0.11+9)
  • Visual Studio Code version: 1.61.2
  • Java extension version: v1.0.0 (October 19, 2021)
Steps To Reproduce
  1. Open any Java class object whose object is used in both the main source code, as well as in the unit test codes.
  2. On any identifiers (method name, class field name, etc.), do SHIFT+ALT+H to invoke "Show Call Hierarchy".
  3. Observe in the list, notice how there aren't any options available to filter certain call invocations from the results. You would have to manually click on the "X" button to remove the entry you don't want, one by one.
Current Result

The "Show Call Hierarchy" looks something like this.

image

Expected Result

After filtering out either all test codes, or applying a name filter pattern to exclude any references containing "test", it should look something like this:

image

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

VS Code Java extension の Show Call Hierarchy エントリーポイントから始め、結果がどのように表示されるかを確認します。要求されているテストコードのフィルタリング、名前パターン、呼び出し深度の制限を比較し、受け入れられるスコープを判断します。選択したフィルタリング動作が call hierarchy UI から利用でき、記載されたユースケースをカバーしていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java, typescript, vscode
領域
devtools
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。