Skip to content

Commit c2b9eca

Browse files
authored
[T3CMS] allowed TCA field can contain CSV string of tables (#351)
1 parent f7e3bb4 commit c2b9eca

File tree

17 files changed

+93
-23
lines changed

17 files changed

+93
-23
lines changed

lang-fluid/src/main/java/com/cedricziel/idea/fluid/tagMode/UnboundNamespaceSuppressor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ public boolean isSuppressedFor(@NotNull PsiElement element, @NotNull String tool
4444
@NotNull
4545
@Override
4646
public SuppressQuickFix @NotNull [] getSuppressActions(@Nullable PsiElement element, @NotNull String toolId) {
47-
return new SuppressQuickFix[0];
47+
return SuppressQuickFix.EMPTY_ARRAY;
4848
}
4949
}

typo3-cms/src/main/java/com/cedricziel/idea/typo3/codeInsight/navigation/PathResourceGotoDeclarationHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public PsiElement[] getGotoDeclarationTargets(@Nullable PsiElement sourceElement
3434

3535
@NotNull
3636
private PsiElement[] emptyPsiElementArray() {
37-
return new PsiElement[0];
37+
return PsiElement.EMPTY_ARRAY;
3838
}
3939

4040
@Nullable

typo3-cms/src/main/java/com/cedricziel/idea/typo3/codeInspection/MissingTableInspection.java

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,18 @@
44
import com.cedricziel.idea.typo3.util.TableUtil;
55
import com.intellij.codeInsight.daemon.GroupNames;
66
import com.intellij.codeInspection.ProblemsHolder;
7+
import com.intellij.openapi.util.TextRange;
78
import com.intellij.psi.PsiElementVisitor;
89
import com.jetbrains.php.lang.psi.elements.PhpPsiElement;
910
import com.jetbrains.php.lang.psi.elements.StringLiteralExpression;
1011
import com.jetbrains.php.lang.psi.visitors.PhpElementVisitor;
1112
import org.jetbrains.annotations.Nls;
1213
import org.jetbrains.annotations.NotNull;
1314

15+
import java.util.ArrayList;
16+
import java.util.Arrays;
17+
import java.util.List;
18+
1419
import static com.cedricziel.idea.typo3.psi.PhpElementsUtil.extractArrayIndexFromValue;
1520
import static com.cedricziel.idea.typo3.util.TCAUtil.arrayIndexIsTCATableNameField;
1621
import static com.cedricziel.idea.typo3.util.TCAUtil.insideTCAColumnDefinition;
@@ -51,13 +56,26 @@ public void visitPhpElement(PhpPsiElement element) {
5156
}
5257

5358
boolean valueIsTableNameFieldValue = arrayIndexIsTCATableNameField(element);
54-
if (valueIsTableNameFieldValue) {
55-
if (element instanceof StringLiteralExpression) {
56-
String tableName = ((StringLiteralExpression) element).getContents();
57-
boolean isValidTableName = TableUtil.getAvailableTableNames(element.getProject()).contains(tableName);
59+
if (!valueIsTableNameFieldValue) {
60+
return;
61+
}
62+
63+
if (element instanceof StringLiteralExpression) {
64+
List<String> tableNames = new ArrayList<>();
5865

66+
String content = ((StringLiteralExpression) element).getContents();
67+
68+
if (arrayKey != null && arrayKey.equals("allowed")) {
69+
tableNames = Arrays.asList(content.trim().split("\\s*,\\s*"));
70+
} else {
71+
tableNames.add(content);
72+
}
73+
74+
for (String tableName : tableNames) {
75+
boolean isValidTableName = TableUtil.getAvailableTableNames(element.getProject()).contains(tableName);
5976
if (!isValidTableName) {
60-
problemsHolder.registerProblem(element, "Missing table definition");
77+
int i = content.indexOf(tableName);
78+
problemsHolder.registerProblem(element, new TextRange(i + 1, i + 1 + tableName.length()), String.format("Table '%s' is not defined", tableName));
6179
}
6280
}
6381
}

typo3-cms/src/main/java/com/cedricziel/idea/typo3/dispatcher/SignalSlotMethodReference.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public SignalSlotMethodReference(@NotNull StringLiteralExpression className, @No
8080
results.add(new PsiElementResolveResult(psiElement));
8181
}
8282

83-
return results.toArray(new ResolveResult[0]);
83+
return results.toArray(ResolveResult.EMPTY_ARRAY);
8484
}
8585

8686
@NotNull

typo3-cms/src/main/java/com/cedricziel/idea/typo3/extbase/controller/ControllerActionReferenceContributor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar)
1818
@Override
1919
public PsiReference @NotNull [] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context) {
2020
if (!(element instanceof StringLiteralExpression)) {
21-
return new PsiReference[0];
21+
return PsiReference.EMPTY_ARRAY;
2222
}
2323

2424
StringLiteralExpression stringLiteralExpression = (StringLiteralExpression) element;
@@ -29,7 +29,7 @@ public void registerReferenceProviders(@NotNull PsiReferenceRegistrar registrar)
2929
return new PsiReference[]{new ControllerActionReference(stringLiteralExpression)};
3030
}
3131

32-
return new PsiReference[0];
32+
return PsiReference.EMPTY_ARRAY;
3333
}
3434
}
3535
);

typo3-cms/src/main/java/com/cedricziel/idea/typo3/index/IconIndex.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ public static PsiElement[] getIconDefinitionElements(@NotNull Project project, @
7474
.toArray(PsiElement[]::new);
7575
}
7676

77-
return new PsiElement[0];
77+
return PsiElement.EMPTY_ARRAY;
7878
}
7979

8080
@NotNull

typo3-cms/src/main/java/com/cedricziel/idea/typo3/routing/RouteFoldingBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class RouteFoldingBuilder extends FoldingBuilderEx {
4242

4343
}
4444

45-
return descriptors.toArray(new FoldingDescriptor[0]);
45+
return descriptors.toArray(FoldingDescriptor.EMPTY);
4646
}
4747

4848
@Nullable

typo3-cms/src/main/java/com/cedricziel/idea/typo3/routing/RouteHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public static PsiElement[] getRouteDefinitionElements(@NotNull Project project,
6161
return true;
6262
}, GlobalSearchScope.allScope(project));
6363

64-
return results.toArray(new PsiElement[0]);
64+
return results.toArray(PsiElement.EMPTY_ARRAY);
6565
}
6666

6767
@NotNull
@@ -81,7 +81,7 @@ private static PsiElement[] getTargetMethods(@NotNull Project project, @NotNull
8181
});
8282
}
8383

84-
return result.toArray(new PsiElement[0]);
84+
return result.toArray(PsiElement.EMPTY_ARRAY);
8585
}
8686

8787
@NotNull

typo3-cms/src/main/java/com/cedricziel/idea/typo3/translation/TranslationFoldingBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public String getPlaceholderText() {
4949
}
5050
}
5151

52-
return descriptors.toArray(new FoldingDescriptor[0]);
52+
return descriptors.toArray(FoldingDescriptor.EMPTY);
5353
}
5454

5555
@Nullable

typo3-cms/src/main/java/com/cedricziel/idea/typo3/util/ControllerActionUtil.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ public static PsiElement[] getDefinitionElements(@NotNull Project project, @NotN
4343
return true;
4444
}, GlobalSearchScope.allScope(project));
4545

46-
return elements.toArray(new PsiElement[0]);
46+
return elements.toArray(PsiElement.EMPTY_ARRAY);
4747
}
4848
}

0 commit comments

Comments
 (0)