public class DefaultUastParser extends UastParser
Constructor and Description |
---|
DefaultUastParser(Project project,
com.intellij.openapi.project.Project p) |
Modifier and Type | Method and Description |
---|---|
Location |
createLocation(com.intellij.psi.PsiElement element) |
Location |
createLocation(org.jetbrains.uast.UElement element) |
Location |
getCallLocation(JavaContext context,
org.jetbrains.uast.UCallExpression call,
boolean includeReceiver,
boolean includeArguments) |
JavaEvaluator |
getEvaluator()
Returns an evaluator which can perform various resolution tasks,
evaluate inheritance lookup etc.
|
java.io.File |
getFile(com.intellij.psi.PsiFile file) |
java.lang.CharSequence |
getFileContents(com.intellij.psi.PsiFile file) |
Location |
getLocation(JavaContext context,
com.intellij.psi.PsiElement element)
Returns a
Location for the given element |
Location |
getLocation(JavaContext context,
org.jetbrains.uast.UElement element) |
Location |
getNameLocation(JavaContext context,
com.intellij.psi.PsiElement element)
Returns a
Location for the given node. |
Location |
getNameLocation(JavaContext context,
org.jetbrains.uast.UElement element) |
Location |
getRangeLocation(JavaContext context,
com.intellij.psi.PsiElement from,
int fromDelta,
int toDelta)
Like
getRangeLocation(JavaContext, PsiElement, int, PsiElement, int)
but both offsets are relative to the starting offset of the given node. |
Location |
getRangeLocation(JavaContext context,
com.intellij.psi.PsiElement from,
int fromDelta,
com.intellij.psi.PsiElement to,
int toDelta)
Returns a
Location for the given node range (from the starting offset of the first
node to the ending offset of the second node). |
Location |
getRangeLocation(JavaContext context,
org.jetbrains.uast.UElement from,
int fromDelta,
int toDelta) |
Location |
getRangeLocation(JavaContext context,
org.jetbrains.uast.UElement from,
int fromDelta,
org.jetbrains.uast.UElement to,
int toDelta) |
org.jetbrains.uast.UastContext |
getUastContext()
Returns a UastContext which can provide UAST representations for source files
|
org.jetbrains.uast.UFile |
parse(JavaContext context)
Parse the file pointed to by the given context.
|
boolean |
prepare(java.util.List<JavaContext> contexts)
Prepare to parse the given contexts.
|
dispose, dispose
public DefaultUastParser(@Nullable Project project, @NonNull com.intellij.openapi.project.Project p)
public boolean prepare(@NonNull java.util.List<JavaContext> contexts)
parse(JavaContext)
calls, which allows some
parsers to do up front global computation in case they want to more
efficiently process multiple files at the same time. This allows a single
type-attribution pass for example, which is a lot more efficient than
performing global type analysis over and over again for each individual
fileprepare
in class UastParser
contexts
- a list of contexts to be parsed@NonNull public JavaEvaluator getEvaluator()
getEvaluator
in class UastParser
@Nullable public org.jetbrains.uast.UFile parse(@NonNull JavaContext context)
parse
in class UastParser
context
- the context pointing to the file to be parsed, typically via Context.getContents()
but the file handle ( Context.file
can also be
used to map to an existing editor buffer in the surrounding tool, etc)@Nullable public org.jetbrains.uast.UastContext getUastContext()
getUastContext
in class UastParser
@NonNull public Location getLocation(@NonNull JavaContext context, @NonNull com.intellij.psi.PsiElement element)
Location
for the given elementgetLocation
in class UastParser
context
- information about the file being parsedelement
- the element to create a location for@NonNull public Location getLocation(@NonNull JavaContext context, @NonNull org.jetbrains.uast.UElement element)
getLocation
in class UastParser
@NonNull public Location getCallLocation(@NonNull JavaContext context, @NonNull org.jetbrains.uast.UCallExpression call, boolean includeReceiver, boolean includeArguments)
getCallLocation
in class UastParser
@Nullable public java.io.File getFile(@NonNull com.intellij.psi.PsiFile file)
getFile
in class UastParser
@NonNull public java.lang.CharSequence getFileContents(@NonNull com.intellij.psi.PsiFile file)
getFileContents
in class UastParser
@NonNull public Location createLocation(@NonNull com.intellij.psi.PsiElement element)
createLocation
in class UastParser
@NonNull public Location createLocation(@NonNull org.jetbrains.uast.UElement element)
createLocation
in class UastParser
@NonNull public Location getRangeLocation(@NonNull JavaContext context, @NonNull com.intellij.psi.PsiElement from, int fromDelta, @NonNull com.intellij.psi.PsiElement to, int toDelta)
Location
for the given node range (from the starting offset of the first
node to the ending offset of the second node).getRangeLocation
in class UastParser
context
- information about the file being parsedfrom
- the AST node to get a starting location fromfromDelta
- Offset delta to apply to the starting offsetto
- the AST node to get a ending location fromtoDelta
- Offset delta to apply to the ending offset@NonNull public Location getRangeLocation(@NonNull JavaContext context, @NonNull org.jetbrains.uast.UElement from, int fromDelta, @NonNull org.jetbrains.uast.UElement to, int toDelta)
getRangeLocation
in class UastParser
@NonNull public Location getRangeLocation(@NonNull JavaContext context, @NonNull com.intellij.psi.PsiElement from, int fromDelta, int toDelta)
getRangeLocation(JavaContext, PsiElement, int, PsiElement, int)
but both offsets are relative to the starting offset of the given node. This is
sometimes more convenient than operating relative to the ending offset when you
have a fixed range in mind.getRangeLocation
in class UastParser
context
- information about the file being parsedfrom
- the AST node to get a starting location fromfromDelta
- Offset delta to apply to the starting offsettoDelta
- Offset delta to apply to the starting offset@NonNull public Location getRangeLocation(@NonNull JavaContext context, @NonNull org.jetbrains.uast.UElement from, int fromDelta, int toDelta)
getRangeLocation
in class UastParser
@NonNull public Location getNameLocation(@NonNull JavaContext context, @NonNull com.intellij.psi.PsiElement element)
Location
for the given node. This attempts to pick a shorter
location range than the entire node; for a class or method for example, it picks
the name node (if found). For statement constructs such as a switch
statement
it will highlight the keyword, etc.getNameLocation
in class UastParser
context
- information about the file being parsedelement
- the node to create a location for@NonNull public Location getNameLocation(@NonNull JavaContext context, @NonNull org.jetbrains.uast.UElement element)
getNameLocation
in class UastParser