-
Notifications
You must be signed in to change notification settings - Fork 0
Searching
Searches include the running JDK without setup and use exact names rather than fuzzy matches. A simple name matches that complete terminal name wherever it is visible. A qualified name selects that exact delimiter-bounded namespace and the symbols beneath it. There is no substring matching, ranking, typo correction, or implicit resolution of partially qualified names. Shell completion can enumerate visible symbols by simple or qualified prefix without changing these search semantics.
A simple name finds every visible symbol whose complete simple name matches:
jist HttpClient
jist isEmpty
jist MAX_VALUEA qualified name selects an exact package, type, or member prefix:
jist java.net.http
jist java.lang.String
jist java.lang.String.valueOf
jist java.lang.Integer.MAX_VALUEA package name includes the packages and symbols beneath it. A type name includes the type and its members. A method name includes all overloads. Use new for constructors:
jist java.lang.String.newRun without a target to enumerate every visible symbol:
jistA source file or ClassFile can also be inspected directly:
jist path/to/Example.java
jist path/to/Example.classSearch results use literal source signatures when available and fall back to declarations reconstructed from ClassFiles:
$ jist java.lang.String.isEmpty
java.lang.String(String.java:1600): public boolean isEmpty() {The name before the colon is the compilation unit that owns the declaration. Source output adds its filename and line number in parentheses. Nested types and their members remain anchored by their top-level compilation unit:
java.util.Map: public abstract interface Entry<K, V> {
Provide the same classes, modules, and sources used to compile a project through the corresponding standard Java options:
jist --class-path build/classes:libs/example.jar com.example
jist --source-path src/main/java com.example
jist --module-path build/modules:libs/example.jar --module com.example.app com.example
jist --module-source-path src --module com.example.app com.example
jist --system /path/to/jdk java.langClass-path entries belong to the unnamed module. --module selects one or more comma-separated compilation modules. --module-path makes application modules observable, but does not make every module a root. --add-modules adds roots and follows their resolved requires edges:
jist --module-path path/to/modules --add-modules ALL-MODULE-PATH com.exampleVisibility starts from the selected compilation modules and reflects --limit-modules, --add-reads, and --add-exports changes to the resolved graph. A class-path entry is visible to a selected named module only when that module reads the unnamed module, for example through --add-reads M=ALL-UNNAMED.
See Project integration for automatically supplying project compilation options.
Pass one exact type or member to --usages:
jist --usages com.example.SessionManager.create
jist --usages java.lang.Integer.MAX_VALUE
jist --usages java.lang.String.newA method name includes all overloads. Method usages include overriding declarations and references resolved to overrides. Each result shows the source line containing the reference:
com.example.LoginService(LoginService.java:74): return sessionManager.create(userId);
Widen each match to its containing declaration, top-level type, or source file when more context is useful:
jist --usages com.example.SessionManager.create --source definition
jist --usages com.example.SessionManager.create --source type
jist --usages com.example.SessionManager.create --source unitZero usages is a successful empty result. When source text is unavailable, the output shows the enclosing symbol and any debug coordinates available from the ClassFile.
Use -k or --kind to include only particular declaration kinds:
jist -k module java.base
jist -k package java.lang
jist -k type java.lang
jist -k class com.example
jist -k interface java.util
jist -k enum java.time
jist -k record com.example
jist -k annotation java.lang
jist -k method java.lang.String
jist -k field java.lang.Integertype is the union of classes, interfaces, enums, records, and annotations. Repeat --kind to include more than one kind.
Module declarations come from resolved module descriptors. Packages use package-info.java documentation and annotations when available, and otherwise appear as synthesized package NAME; declarations. Only observable packages appear; missing parent packages are not synthesized.
Default visibility includes public and protected library declarations. Choose another visibility level when needed:
-public Public declarations
-protected Public and protected declarations
-package Public, protected, and package declarations
-private All declarations