Package org.fife.rsta.ac.js.ast
Class VariableResolver
- java.lang.Object
-
- org.fife.rsta.ac.js.ast.VariableResolver
-
public class VariableResolver extends java.lang.ObjectCache Local and System scope variables Local scope variables are cleared each time theSourceCompletionProviderfinishes parsing the script System scope variables will not be cleared
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration>localFunctionsprivate java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration>localVariablesprivate java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration>preProcessedFunctionsprivate java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration>preProcessedVariablesprivate java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration>systemVariables
-
Constructor Summary
Constructors Constructor Description VariableResolver()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLocalFunction(JavaScriptFunctionDeclaration func)voidaddLocalVariable(JavaScriptVariableDeclaration declaration)Add local scope variable to cache.voidaddPreProcessingFunction(JavaScriptFunctionDeclaration func)Add pre-processing scope function to cache.voidaddPreProcessingVariable(JavaScriptVariableDeclaration declaration)Add pre-processing scope variable to cache.voidaddSystemVariable(JavaScriptVariableDeclaration declaration)Add system scope variable to cacheJavaScriptVariableDeclarationfindDeclaration(java.lang.String name, int dot)Find JSVariableDeclaration for name against all variable types and check is in scope of caret positionJavaScriptVariableDeclarationfindDeclaration(java.lang.String name, int dot, boolean local, boolean preProcessed, boolean system)private JavaScriptVariableDeclarationfindDeclaration(java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration> variables, java.lang.String name, int dot)Find JSVariableDeclaration and check the scope of the caret positionprivate JavaScriptFunctionDeclarationfindFirstFunction(java.lang.String name, java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration> functions)JavaScriptFunctionDeclarationfindFunctionDeclaration(java.lang.String name)JavaScriptFunctionDeclarationfindFunctionDeclaration(java.lang.String name, boolean local, boolean preProcessed)JavaScriptFunctionDeclarationfindFunctionDeclarationByFunctionName(java.lang.String name, boolean local, boolean preprocessed)JavaScriptVariableDeclarationfindNonLocalDeclaration(java.lang.String name, int dot)Find JSVariableDeclaration within pre-processed and system variable only.TypeDeclarationgetTypeDeclarationForVariable(java.lang.String name, int dot)Find theTypeDeclarationfor the variable and check the scope of the caret positionvoidremovePreProcessingVariable(java.lang.String name)remove pre-processing variable from system variable cachevoidremoveSystemVariable(java.lang.String name)remove system variable from system variable cachevoidresetLocalVariables()Clear all local scope variablesvoidresetPreProcessingVariables(boolean clear)voidresetSystemVariables()TypeDeclarationresolveType(java.lang.String varName, int dot)Resolve the entered text by chopping up the text and working from left to right, resolving each type in turn
-
-
-
Field Detail
-
localVariables
private java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration> localVariables
-
preProcessedVariables
private java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration> preProcessedVariables
-
systemVariables
private java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration> systemVariables
-
localFunctions
private java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration> localFunctions
-
preProcessedFunctions
private java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration> preProcessedFunctions
-
-
Method Detail
-
addLocalVariable
public void addLocalVariable(JavaScriptVariableDeclaration declaration)
Add local scope variable to cache.- Parameters:
declaration- variable to add
-
addPreProcessingVariable
public void addPreProcessingVariable(JavaScriptVariableDeclaration declaration)
Add pre-processing scope variable to cache.- Parameters:
declaration- variable to add
-
addSystemVariable
public void addSystemVariable(JavaScriptVariableDeclaration declaration)
Add system scope variable to cache- Parameters:
declaration- variable to add
-
removePreProcessingVariable
public void removePreProcessingVariable(java.lang.String name)
remove pre-processing variable from system variable cache- Parameters:
name- of the system variable to remove
-
removeSystemVariable
public void removeSystemVariable(java.lang.String name)
remove system variable from system variable cache- Parameters:
name- of the system variable to remove
-
findDeclaration
public JavaScriptVariableDeclaration findDeclaration(java.lang.String name, int dot)
Find JSVariableDeclaration for name against all variable types and check is in scope of caret position- Parameters:
name-dot-- Returns:
- JSVariableDeclaration from the name
-
findDeclaration
public JavaScriptVariableDeclaration findDeclaration(java.lang.String name, int dot, boolean local, boolean preProcessed, boolean system)
-
findNonLocalDeclaration
public JavaScriptVariableDeclaration findNonLocalDeclaration(java.lang.String name, int dot)
Find JSVariableDeclaration within pre-processed and system variable only. Also check is in scope of caret position- Parameters:
name- of variable to resolvedot- position in text document- Returns:
- JSVariableDeclaration from the name
-
findDeclaration
private JavaScriptVariableDeclaration findDeclaration(java.util.HashMap<java.lang.String,JavaScriptVariableDeclaration> variables, java.lang.String name, int dot)
Find JSVariableDeclaration and check the scope of the caret position- Parameters:
name-dot-- Returns:
- JSVariableDeclaration from the name
-
getTypeDeclarationForVariable
public TypeDeclaration getTypeDeclarationForVariable(java.lang.String name, int dot)
Find theTypeDeclarationfor the variable and check the scope of the caret position- Parameters:
name- name of variabledot- position- Returns:
- TypeDeclaration from the name
-
resetLocalVariables
public void resetLocalVariables()
Clear all local scope variables
-
resetPreProcessingVariables
public void resetPreProcessingVariables(boolean clear)
-
resetSystemVariables
public void resetSystemVariables()
-
resolveType
public TypeDeclaration resolveType(java.lang.String varName, int dot)
Resolve the entered text by chopping up the text and working from left to right, resolving each type in turn- Parameters:
varName-dot-- Returns:
- TypeDeclaration for variable name
-
addLocalFunction
public void addLocalFunction(JavaScriptFunctionDeclaration func)
-
findFunctionDeclaration
public JavaScriptFunctionDeclaration findFunctionDeclaration(java.lang.String name)
-
findFunctionDeclaration
public JavaScriptFunctionDeclaration findFunctionDeclaration(java.lang.String name, boolean local, boolean preProcessed)
-
findFunctionDeclarationByFunctionName
public JavaScriptFunctionDeclaration findFunctionDeclarationByFunctionName(java.lang.String name, boolean local, boolean preprocessed)
-
findFirstFunction
private JavaScriptFunctionDeclaration findFirstFunction(java.lang.String name, java.util.HashMap<java.lang.String,JavaScriptFunctionDeclaration> functions)
-
addPreProcessingFunction
public void addPreProcessingFunction(JavaScriptFunctionDeclaration func)
Add pre-processing scope function to cache.- Parameters:
func- variable to add
-
-