use of com.intellij.lang.javascript.psi.resolve.JSClassResolver in project intellij-plugins by JetBrains.
the class FlexHighlightingTest method testFxPrivate.
@JSTestOptions({ JSTestOption.WithFlexFacet, JSTestOption.WithGumboSdk })
public void testFxPrivate() throws Exception {
doTestFor(true, getTestName(false) + ".mxml");
final JSClassResolver resolver = JSDialectSpecificHandlersFactory.forLanguage(JavaScriptSupportLoader.ECMA_SCRIPT_L4).getClassResolver();
final JSClass jsClass = (JSClass) resolver.findClassByQName("mx.controls.CheckBox", GlobalSearchScope.moduleWithLibrariesScope(myModule));
final Collection<PsiReference> usages = ReferencesSearch.search(jsClass, GlobalSearchScope.moduleScope(myModule)).findAll();
assertEquals(1, usages.size());
}
use of com.intellij.lang.javascript.psi.resolve.JSClassResolver in project intellij-plugins by JetBrains.
the class ActionScriptHighlightingTest method testBindableClassImplicitlyImplementsIEventDispatcher2.
@JSTestOptions(JSTestOption.WithFlexSdk)
public void testBindableClassImplicitlyImplementsIEventDispatcher2() throws Exception {
doTestFor(true, new File(getTestDataPath() + BASE_PATH + getTestName(false)), (Runnable) null, getTestName(false) + "/Main.js2");
final JSClassResolver resolver = JSDialectSpecificHandlersFactory.forLanguage(JavaScriptSupportLoader.ECMA_SCRIPT_L4).getClassResolver();
assertNotNull(((JSClass) resolver.findClassByQName("OtherClass", myModule.getModuleScope())).getStub());
assertNotNull(((JSClass) resolver.findClassByQName("OtherClass2", myModule.getModuleScope())).getStub());
}
use of com.intellij.lang.javascript.psi.resolve.JSClassResolver in project intellij-plugins by JetBrains.
the class ActionScriptHighlightingTest method testCorrectScopeForSuperclassCheck7.
public void testCorrectScopeForSuperclassCheck7() throws Exception {
// same FQNs in different modules
final Module module2 = doCreateRealModuleIn("module2", myProject, FlexModuleType.getInstance());
myAfterCommitRunnable = () -> copyFileToModule(module2, getTestDataPath() + BASE_PATH + getTestName(false) + "_2.js2");
configureByFiles(null, BASE_PATH + getTestName(false) + ".js2");
final JSClassResolver resolver = JSDialectSpecificHandlersFactory.forLanguage(JavaScriptSupportLoader.ECMA_SCRIPT_L4).getClassResolver();
final PsiElement class1 = resolver.findClassByQName("com.foo.Foo", myModule.getModuleScope());
assertNotNull(class1);
final PsiElement class2 = resolver.findClassByQName("com.foo.Foo", module2.getModuleScope());
assertNotNull(class2);
assertFalse(class1.isEquivalentTo(class2));
}
use of com.intellij.lang.javascript.psi.resolve.JSClassResolver in project intellij-plugins by JetBrains.
the class FlexMoveMembersTest method performAction.
private void performAction(String sourceClassName, final String targetClassName, final String visibility, final String[] memberNames) throws Exception {
final JSClassResolver resolver = JSDialectSpecificHandlersFactory.forLanguage(JavaScriptSupportLoader.ECMA_SCRIPT_L4).getClassResolver();
final JSClass sourceClass = (JSClass) resolver.findClassByQName(sourceClassName, ActionScriptMoveMembersDialog.getScope(myProject));
assertNotNull("Class " + sourceClassName + " not found", sourceClass);
JSClass targetClass = (JSClass) resolver.findClassByQName(targetClassName, ActionScriptMoveMembersDialog.getScope(myProject));
assertNotNull("Class " + targetClassName + " not found", targetClass);
final List<JSMemberInfo> memberInfos = new ArrayList<>();
JSMemberInfo.extractStaticMembers(sourceClass, memberInfos, new MemberInfoBase.Filter<JSAttributeListOwner>() {
@Override
public boolean includeMember(JSAttributeListOwner member) {
return memberNames.length == 0 || ArrayUtil.contains(member.getName(), memberNames);
}
});
JSMemberInfo.sortByOffset(memberInfos);
for (JSMemberInfo memberInfo : memberInfos) {
memberInfo.setChecked(true);
}
new JSMoveMembersProcessor(myProject, null, sourceClass, ActionScriptMoveMembersDialog.getScope(myProject), new JSMoveMembersOptions() {
@Override
public JSAttributeListOwner[] getSelectedMembers() {
final JSMemberInfo[] selected = JSMemberInfo.getSelected(memberInfos, sourceClass, Conditions.alwaysTrue());
JSAttributeListOwner[] result = new JSAttributeListOwner[selected.length];
for (int i = 0; i < result.length; i++) {
result[i] = selected[i].getMember();
}
return result;
}
@Override
public String getTargetClassName() {
return targetClassName;
}
@Override
public String getMemberVisibility() {
return visibility;
}
}).run();
myProject.getComponent(PostprocessReformattingAspect.class).doPostponedFormatting();
FileDocumentManager.getInstance().saveAllDocuments();
}
use of com.intellij.lang.javascript.psi.resolve.JSClassResolver in project intellij-plugins by JetBrains.
the class FlexPullUpTest method performAction.
private void performAction(String from, String to, final int docCommentPolicy, String[] expectedConflicts, final String[] toPullUp) {
final JSClassResolver resolver = JSDialectSpecificHandlersFactory.forLanguage(JavaScriptSupportLoader.ECMA_SCRIPT_L4).getClassResolver();
final JSClass sourceClass = (JSClass) resolver.findClassByQName(from, GlobalSearchScope.projectScope(getProject()));
assertNotNull("source class not found: " + sourceClass, sourceClass);
final JSClass targetClass = (JSClass) resolver.findClassByQName(to, GlobalSearchScope.projectScope(getProject()));
assertNotNull("target class not found: " + targetClass, targetClass);
assertTrue("Source should be a subclass of target", JSInheritanceUtil.isParentClass(sourceClass, targetClass));
final List<JSMemberInfo> memberInfos = getMemberInfos(toPullUp, sourceClass, false);
final JSMemberInfo[] infosArray = JSMemberInfo.getSelected(memberInfos, sourceClass, Conditions.alwaysTrue());
MultiMap<PsiElement, String> conflicts = JSPullUpConflictsUtil.checkConflicts(infosArray, sourceClass, targetClass, new JSInterfaceContainmentVerifier() {
@Override
public boolean checkedInterfacesContain(JSFunction psiMethod) {
return JSPullUpHelper.checkedInterfacesContain(memberInfos, psiMethod);
}
}, JSVisibilityUtil.DEFAULT_OPTIONS);
ArrayList<String> messages = new ArrayList<>(conflicts.values());
for (int i = 0; i < messages.size(); i++) {
messages.set(i, messages.get(i).replaceAll("<[^>]+>", ""));
}
assertSameElements(messages, expectedConflicts);
if (conflicts.isEmpty()) {
WriteCommandAction.runWriteCommandAction(null, () -> {
new JSPullUpHelper(sourceClass, targetClass, infosArray, docCommentPolicy).moveMembersToBase();
myProject.getComponent(PostprocessReformattingAspect.class).doPostponedFormatting();
});
FileDocumentManager.getInstance().saveAllDocuments();
}
}
Aggregations