- java.lang.Object
-
- jdk.jshell.SourceCodeAnalysis
-
public abstract class SourceCodeAnalysis extends Object
ソース・コード入力用の分析ユーティリティを提供します。 より豊富な対話型エクスペリエンスを提供するオプション機能。 完了分析を含む: 入力は完全なコード・スニペットですか。 さらに入力を要求する必要がありますか。 セミコロンを追加すると完了します。 スニペットは複数ありますか?etc.また、タブ補完で使用されるように、完了候補も含まれます。- 導入されたバージョン:
- 9
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static classSourceCodeAnalysis.Completeness指定された入力の完全性を示します。static interfaceSourceCodeAnalysis.CompletionInfoanalyzeCompletion(String input)の結果。static interfaceSourceCodeAnalysis.Documentation指定されたユーザーの入力を継続するための候補のドキュメント。static classSourceCodeAnalysis.QualifiedNames使用可能な修飾名のリスト。static interfaceSourceCodeAnalysis.SnippetWrapperJavaソースのスニペットを有効な最上位Javaソースにラップする。static interfaceSourceCodeAnalysis.Suggestion指定されたユーザーの入力を継続するための候補。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 abstract SourceCodeAnalysis.CompletionInfoanalyzeCompletion(String input)入力文字列を指定して、コードの最初のスニペット(1つの文、定義、インポートまたは式)を検索し、完了しているかどうかを評価します。abstract StringanalyzeType(String code, int cursor)指定された式のタイプを推測します。abstract List<SourceCodeAnalysis.Suggestion>completionSuggestions(String input, int cursor, int[] anchor)指定された入力の可能なフォローアップを計算します。abstract Collection<Snippet>dependents(Snippet snippet)指定されたSnippetが更新された場合に更新が必要な可能性のあるSnippetのコレクションを返します。abstract List<SourceCodeAnalysis.Documentation>documentation(String input, int cursor, boolean computeJavadoc)指定されたユーザーの入力に関するコンピュート・ドキュメント。abstract SourceCodeAnalysis.QualifiedNameslistQualifiedNames(String code, int cursor)指定されたコード内の単純名で認識されている修飾名を、指定されたカーソル位置のすぐ左にリストします。abstract List<Snippet>sourceToSnippets(String input)スニペットのソース・コードをSnippetオブジェクト(または、一部のvar宣言の場合のSnippetオブジェクトのリスト(int x、y、z; など)に変換します。abstract SourceCodeAnalysis.SnippetWrapperwrapper(Snippet snippet)Snippetのラッパー情報を返します。abstract List<SourceCodeAnalysis.SnippetWrapper>wrappers(String input)入力ソース文字列内のスニペットのラッパー情報を返します。
-
-
-
メソッドの詳細
-
analyzeCompletion
public abstract SourceCodeAnalysis.CompletionInfo analyzeCompletion(String input)
入力文字列を指定して、コードの最初のスニペット(1つの文、定義、インポートまたは式)を検索し、完了しているかどうかを評価します。- パラメータ:
input- 入力ソース文字列- 戻り値:
- 場所および完全性情報を含むCompletionInfoインスタンス
-
completionSuggestions
public abstract List<SourceCodeAnalysis.Suggestion> completionSuggestions(String input, int cursor, int[] anchor)
指定された入力の可能なフォローアップを計算します。 現在のJShell状態からの情報(型情報を含む)を使用して、提案をフィルタ処理します。- パラメータ:
input- これまでのユーザー入力cursor- 指定されたinputテキスト内のカーソルの現在の位置anchor- 送信パラメータ- オプションが完了すると、アンカーとカーソルの間のテキストが削除され、指定されたオプションに置き換えられます- 戻り値:
- 指定された入力の候補継続のリスト。
-
documentation
public abstract List<SourceCodeAnalysis.Documentation> documentation(String input, int cursor, boolean computeJavadoc)
指定されたユーザーの入力に関するコンピュート・ドキュメント。 複数の要素がユーザーの入力と一致する場合(オーバーロードされたメソッドの場合など)、複数のDocumentationオブジェクトが返されます。- パラメータ:
input- ユーザーがこれまでに書いたスニペットcursor- 指定されたinputテキスト内のカーソルの現在の位置computeJavadoc- 署名に加えて、指定された入力のjavadocを計算する必要がある場合はtrue- 戻り値:
- 指定されたユーザーの入力に関するドキュメント。複数の要素が入力と一致する場合は、複数の
Documentationオブジェクトが戻されます。
-
analyzeType
public abstract String analyzeType(String code, int cursor)
指定された式のタイプを推測します。 式は、codeの先頭から指定されたcursor位置までです。 式の型を推測できない場合、nullを返します。- パラメータ:
code- 型を推測する式cursor- 指定されたコード内の現在のカーソル位置- 戻り値:
- 推測型、または推測できない場合はnull
-
listQualifiedNames
public abstract SourceCodeAnalysis.QualifiedNames listQualifiedNames(String code, int cursor)
指定されたコード内の単純名で認識されている修飾名を、指定されたカーソル位置のすぐ左にリストします。 修飾名は、evalで使用されるクラスパスを検査することによって収集されます(JShell.addToClasspath(java.lang.String)を参照)。- パラメータ:
code- 候補修飾名を計算する式cursor- 指定されたコード内の現在のカーソル位置- 戻り値:
- 既知の修飾名
-
wrapper
public abstract SourceCodeAnalysis.SnippetWrapper wrapper(Snippet snippet)
Snippetのラッパー情報を返します。 ラッパーは環境の変更に応じて変更されるため、このメソッドを異なるタイミングでコールすると、結果が異なる場合があります。- パラメータ:
snippet- ラッパーの取得元のSnippet- 戻り値:
- ラッパーに関する情報
-
wrappers
public abstract List<SourceCodeAnalysis.SnippetWrapper> wrappers(String input)
入力ソース文字列内のスニペットのラッパー情報を返します。不正な形式および不完全なスニペットのラッパー情報もラッパーを生成します。 リストはスニペットの検出順序です。 ラッパーは環境の変更に応じて変更されるため、このメソッドを異なるタイミングでコールすると、結果が異なる場合があります。
入力は、ソース・コードの完全なスニペット(1つの式、文、変数宣言、メソッド宣言、クラス宣言またはインポート)です。 任意の入力を個々の完全なスニペットに分割するには、
analyzeCompletion(String)を使用します。ラッパーは、ソースが
Snippetに変換されたwrapper(Snippet)によって返されたものと一致しない場合があります。- パラメータ:
input- ラッパーを生成するソース入力- 戻り値:
- ラッパー情報のリスト
-
sourceToSnippets
public abstract List<Snippet> sourceToSnippets(String input)
スニペットのソース・コードをSnippetオブジェクト(または、一部のvar宣言の場合のSnippetオブジェクトのリスト(int x、y、z; など)に変換します。 スニペットはインストールされません。他のスニペットでは宣言にアクセスできません。インポートは追加されません。 スニペットは実行されません。問合せは、
Snippetオブジェクトに対して実行できます。Snippet.id()は"*UNASSOCIATED*"になります。 返されたスニペットはJShellインスタンスに関連付けられていないため、それらをJShellメソッドに渡そうとすると、IllegalArgumentExceptionがスローされます。 これらは、スニペットの問合せ(たとえば、JShell.snippets())には表示されません。入力に関する制限事項は、
JShell.evalと同じです。Snippetを構築するには、事前コンパイルのみが実行され、十分です。 間違っていることが判明しているスニペットは、ErroneousSnippetとして返され、他のスニペットはエラーの場合とそうでない場合があります。- パラメータ:
input- 変換する入力文字列- 戻り値:
- 通常はSnippetのシングルトン・リストですが、空または複数にできます。
- 例外:
IllegalStateException-JShellインスタンスがクローズされている場合。
-
dependents
public abstract Collection<Snippet> dependents(Snippet snippet)
指定されたSnippetが更新された場合に更新が必要な可能性のあるSnippetのコレクションを返します。 返されるコレクションは包括的であると設計されており、多くの誤検出が含まれる場合があります。- パラメータ:
snippet- 依存性がリクエストされたSnippet- 戻り値:
- 扶養家族のコレクション
-
-