Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlDocument;
Expand All @@ -12,10 +11,10 @@
import com.intellij.util.io.EnumeratorStringDescriptor;
import com.intellij.util.io.KeyDescriptor;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper;
import org.apache.commons.lang.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;
import org.jetbrains.yaml.psi.*;

import java.util.Collections;
Expand Down Expand Up @@ -76,7 +75,7 @@ public DataExternalizer<Integer> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return file -> file.getFileType() == XmlFileType.INSTANCE || file.getFileType() == YAMLFileType.YML;
return FileInputFilter.XML_YAML;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlFile;
import com.intellij.util.indexing.*;
Expand All @@ -9,9 +8,9 @@
import com.intellij.util.io.KeyDescriptor;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.config.xml.XmlHelper;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import fr.adrienbrault.idea.symfony2plugin.util.yaml.YamlHelper;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;
import org.jetbrains.yaml.psi.YAMLFile;

import java.util.HashMap;
Expand Down Expand Up @@ -84,7 +83,7 @@ public DataExternalizer<String> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return file -> file.getFileType() == XmlFileType.INSTANCE || file.getFileType() == YAMLFileType.YML;
return FileInputFilter.XML_YAML;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.util.Pair;
import com.intellij.psi.PsiFile;
import com.intellij.util.indexing.*;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import com.intellij.util.io.KeyDescriptor;
import com.jetbrains.php.lang.PhpFileType;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.doctrine.DoctrineUtil;
import fr.adrienbrault.idea.symfony2plugin.doctrine.dict.DoctrineModel;
import fr.adrienbrault.idea.symfony2plugin.doctrine.dict.DoctrineModelSerializable;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;

import java.util.Collection;
import java.util.Map;
Expand Down Expand Up @@ -89,14 +86,7 @@ public DataExternalizer<DoctrineModelSerializable> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return virtualFile -> {
FileType fileType = virtualFile.getFileType();
return
fileType == XmlFileType.INSTANCE ||
fileType == PhpFileType.INSTANCE ||
fileType == YAMLFileType.YML
;
};
return FileInputFilter.XML_YAML_PHP;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.psi.PsiFile;
import com.intellij.util.indexing.*;
import com.intellij.util.io.DataExternalizer;
Expand All @@ -9,10 +8,10 @@
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.stubs.dict.FileResource;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import fr.adrienbrault.idea.symfony2plugin.util.FileResourceVisitorUtil;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;

import java.util.Collections;
import java.util.Map;
Expand Down Expand Up @@ -45,9 +44,12 @@ public DataIndexer<String, FileResource, FileContent> getIndexer() {

final Map<String, FileResource> items = new THashMap<>();

FileResourceVisitorUtil.visitFile(psiFile, consumer ->
items.put(consumer.getResource(), consumer.createFileResource())
);
FileResourceVisitorUtil.visitFile(psiFile, consumer -> {
String resource = consumer.getResource();
if (resource.length() < 255) {
items.put(resource, consumer.createFileResource());
}
});

return items;
};
Expand All @@ -68,8 +70,7 @@ public DataExternalizer<FileResource> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return virtualFile ->
virtualFile.getFileType() == XmlFileType.INSTANCE || virtualFile.getFileType() == YAMLFileType.YML;
return FileInputFilter.XML_YAML;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
Expand All @@ -11,17 +9,16 @@
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import com.intellij.util.io.KeyDescriptor;
import com.jetbrains.php.lang.PhpFileType;
import com.jetbrains.php.lang.psi.PhpFile;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.routing.RouteHelper;
import fr.adrienbrault.idea.symfony2plugin.stubs.dict.StubIndexedRoute;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.visitor.AnnotationRouteElementWalkingVisitor;
import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;
import org.jetbrains.yaml.psi.YAMLDocument;
import org.jetbrains.yaml.psi.YAMLFile;

Expand Down Expand Up @@ -64,13 +61,19 @@ public DataIndexer<String, StubIndexedRoute, FileContent> getIndexer() {
}

for(StubIndexedRoute indexedRoutes: RouteHelper.getYamlRouteDefinitions(yamlDocument)) {
map.put(indexedRoutes.getName(), indexedRoutes);
String name = indexedRoutes.getName();
if (name.length() < 255) {
map.put(name, indexedRoutes);
}
}

return map;
} else if(psiFile instanceof XmlFile) {
for(StubIndexedRoute indexedRoutes: RouteHelper.getXmlRouteDefinitions((XmlFile) psiFile)) {
map.put(indexedRoutes.getName(), indexedRoutes);
String name = indexedRoutes.getName();
if (name.length() < 255) {
map.put(name, indexedRoutes);
}
}
} else if(psiFile instanceof PhpFile) {
// annotations: @Route()
Expand Down Expand Up @@ -101,10 +104,7 @@ public DataExternalizer<StubIndexedRoute> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return file -> {
FileType fileType = file.getFileType();
return fileType == YAMLFileType.YML || fileType == XmlFileType.INSTANCE || fileType == PhpFileType.INSTANCE;
};
return FileInputFilter.XML_YAML_PHP;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,19 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.psi.PsiFile;
import com.intellij.util.indexing.*;
import com.intellij.util.io.DataExternalizer;
import com.intellij.util.io.EnumeratorStringDescriptor;
import com.intellij.util.io.KeyDescriptor;
import com.jetbrains.php.lang.PhpFileType;
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.dic.container.ServiceSerializable;
import fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.ObjectStreamDataExternalizer;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import fr.adrienbrault.idea.symfony2plugin.util.ProjectUtil;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;

import java.io.File;
import java.util.Collection;
Expand Down Expand Up @@ -74,8 +72,7 @@ public DataExternalizer<ServiceSerializable> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return file ->
file.getFileType() == XmlFileType.INSTANCE || file.getFileType() == YAMLFileType.YML || file.getFileType() == PhpFileType.INSTANCE;
return FileInputFilter.XML_YAML_PHP;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package fr.adrienbrault.idea.symfony2plugin.stubs.indexes;

import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlFile;
import com.intellij.util.indexing.*;
Expand All @@ -10,9 +9,9 @@
import fr.adrienbrault.idea.symfony2plugin.Symfony2ProjectComponent;
import fr.adrienbrault.idea.symfony2plugin.form.util.FormUtil;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.externalizer.StringSetDataExternalizer;
import fr.adrienbrault.idea.symfony2plugin.stubs.indexes.inputFilter.FileInputFilter;
import gnu.trove.THashMap;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.yaml.YAMLFileType;
import org.jetbrains.yaml.psi.YAMLFile;

import java.util.Map;
Expand Down Expand Up @@ -75,8 +74,7 @@ public DataExternalizer<Set<String>> getValueExternalizer() {
@NotNull
@Override
public FileBasedIndex.InputFilter getInputFilter() {
return file ->
file.getFileType() == XmlFileType.INSTANCE || file.getFileType() == YAMLFileType.YML;
return FileInputFilter.XML_YAML;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,21 +34,21 @@ public class TranslationStubIndex extends FileBasedIndexExtension<String, Set<St
@Override
public DataIndexer<String, Set<String>, FileContent> getIndexer() {

return new DataIndexer<String, Set<String>, FileContent>() {
return new DataIndexer<>() {
@NotNull
@Override
public Map<String, Set<String>> map(@NotNull FileContent inputData) {
if(!Symfony2ProjectComponent.isEnabledForIndex(inputData.getProject())) {
if (!Symfony2ProjectComponent.isEnabledForIndex(inputData.getProject())) {
return Collections.emptyMap();
}

String extension = inputData.getFile().getExtension();
if("xlf".equalsIgnoreCase(extension) || "xliff".equalsIgnoreCase(extension)) {
if ("xlf".equalsIgnoreCase(extension) || "xliff".equalsIgnoreCase(extension)) {
return getXlfStringMap(inputData);
}

PsiFile psiFile = inputData.getPsiFile();
if(!(psiFile instanceof YAMLFile)) {
if (!(psiFile instanceof YAMLFile)) {
return Collections.emptyMap();
}

Expand All @@ -58,7 +58,7 @@ public Map<String, Set<String>> map(@NotNull FileContent inputData) {
}

String domainName = this.getDomainName(inputData.getFileName());
if(domainName == null) {
if (domainName == null) {
return Collections.emptyMap();
}

Expand All @@ -68,7 +68,7 @@ public Map<String, Set<String>> map(@NotNull FileContent inputData) {
return true;
});

if(translationKeySet.size() == 0) {
if (translationKeySet.size() == 0) {
return Collections.emptyMap();
}

Expand All @@ -84,7 +84,7 @@ private boolean isValidTranslationFile(@NotNull FileContent inputData, @NotNull
// - "Resources/translations"
// - "translations/[.../]foo.de.yml"
String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(inputData.getProject()), '/');
if(relativePath != null) {
if (relativePath != null) {
return relativePath.contains("/translations") || relativePath.startsWith("translations/");
}

Expand All @@ -98,13 +98,13 @@ private boolean isValidTranslationFile(@NotNull FileContent inputData, @NotNull
private Map<String, Set<String>> getXlfStringMap(@NotNull FileContent inputData) {
// testing files are not that nice
String relativePath = VfsUtil.getRelativePath(inputData.getFile(), ProjectUtil.getProjectDir(inputData.getProject()), '/');
if(relativePath != null && (relativePath.contains("/Test/") || relativePath.contains("/Tests/") || relativePath.contains("/Fixture/") || relativePath.contains("/Fixtures/"))) {
if (relativePath != null && (relativePath.contains("/Test/") || relativePath.contains("/Tests/") || relativePath.contains("/Fixture/") || relativePath.contains("/Fixtures/"))) {
return Collections.emptyMap();
}

// extract domain name
String domainName = getDomainName(inputData.getFileName());
if(domainName == null) {
if (domainName == null) {
return Collections.emptyMap();
}

Expand All @@ -116,7 +116,7 @@ private Map<String, Set<String>> getXlfStringMap(@NotNull FileContent inputData)
}

Set<String> set = TranslationUtil.getXliffTranslations(inputStream);
if(set.size() == 0) {
if (set.size() == 0) {
return Collections.emptyMap();
}

Expand All @@ -129,14 +129,14 @@ private Map<String, Set<String>> getXlfStringMap(@NotNull FileContent inputData)
@Nullable
private String getDomainName(@NotNull String fileName) {
String[] split = fileName.split("\\.");
if(split.length < 2 || Arrays.stream(split).anyMatch(s -> s.length() == 0)) {
if (split.length < 2 || Arrays.stream(split).anyMatch(s -> s.length() == 0)) {
return null;
}

// foo.fr.yml
// dont index fr.yml
int domainSplit = fileName.lastIndexOf(".");
if(domainSplit <= 2) {
if (domainSplit <= 2) {
return null;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,17 @@ public DataIndexer<String, Set<String>, FileContent> getIndexer() {
PsiFile psiFile = fileContent.getPsiFile();
if(psiFile instanceof TwigFile) {
for (TwigBlock twigBlock : TwigUtil.getBlocksInFile((TwigFile) psiFile)) {
String blockName = twigBlock.getName();
if (blockName.length() > 255) {
continue;
}

// we only index file scope
// {% embed 'foo.html.twig' %}{% block foo %}{% endembed %}
PsiElement embedStatement = PsiElementUtils.getParentOfType(twigBlock.getTarget(), TwigElementTypes.EMBED_STATEMENT);
if(embedStatement == null) {
blocks.putIfAbsent("block", new HashSet<>());
blocks.get("block").add(twigBlock.getName());
blocks.get("block").add(blockName);
}
}

Expand All @@ -63,7 +68,7 @@ public DataIndexer<String, Set<String>, FileContent> getIndexer() {
public void visitElement(PsiElement element) {
if(TwigPattern.getTwigTagUseNamePattern().accepts(element) && PsiElementUtils.getParentOfType(element, TwigElementTypes.EMBED_STATEMENT) == null) {
String templateName = TwigUtil.normalizeTemplateName(PsiElementUtils.trimQuote(element.getText()));
if(StringUtils.isNotBlank(templateName)) {
if(templateName.length() < 255 && StringUtils.isNotBlank(templateName)) {
blocks.putIfAbsent("use", new HashSet<>());
blocks.get("use").add(templateName);
}
Expand Down
Loading