Skip to content

Commit edb5eb9

Browse files
committed
CakePHP config files are known
1 parent 5f7eb5d commit edb5eb9

File tree

1 file changed

+31
-1
lines changed

1 file changed

+31
-1
lines changed

src/org/cakephp/netbeans/CakePhpFrameworkProvider.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,23 @@
55
package org.cakephp.netbeans;
66

77
import java.io.File;
8+
import java.util.Collections;
9+
import java.util.Comparator;
10+
import java.util.Enumeration;
11+
import java.util.LinkedList;
12+
import java.util.List;
813
import org.netbeans.modules.php.api.phpmodule.BadgeIcon;
914
import org.netbeans.modules.php.api.phpmodule.PhpModule;
1015
import org.netbeans.modules.php.api.phpmodule.PhpModuleProperties;
16+
import org.netbeans.modules.php.api.util.FileUtils;
1117
import org.netbeans.modules.php.spi.commands.FrameworkCommandSupport;
1218
import org.netbeans.modules.php.spi.editor.EditorExtender;
1319
import org.netbeans.modules.php.spi.phpmodule.PhpFrameworkProvider;
1420
import org.netbeans.modules.php.spi.phpmodule.PhpModuleActionsExtender;
1521
import org.netbeans.modules.php.spi.phpmodule.PhpModuleExtender;
1622
import org.netbeans.modules.php.spi.phpmodule.PhpModuleIgnoredFilesExtender;
1723
import org.openide.filesystems.FileObject;
24+
import org.openide.filesystems.FileUtil;
1825
import org.openide.util.ImageUtilities;
1926
import org.openide.util.NbBundle;
2027

@@ -23,6 +30,12 @@ public final class CakePhpFrameworkProvider extends PhpFrameworkProvider {
2330
// TODO: provide better badge icon
2431
private static final String ICON_PATH = "org/cakephp/netbeans/ui/resources/cakephp_badge_8.png"; // NOI18N
2532
private static final CakePhpFrameworkProvider INSTANCE = new CakePhpFrameworkProvider();
33+
private static final Comparator<File> FILE_COMPARATOR = new Comparator<File>() {
34+
@Override
35+
public int compare(File o1, File o2) {
36+
return o1.getName().compareToIgnoreCase(o2.getName());
37+
}
38+
};
2639

2740
private final BadgeIcon badgeIcon;
2841

@@ -52,7 +65,24 @@ public boolean isInPhpModule(PhpModule phpModule) {
5265

5366
@Override
5467
public File[] getConfigurationFiles(PhpModule phpModule) {
55-
return new File[0];
68+
// return all php files from app/config
69+
List<File> configFiles = new LinkedList<File>();
70+
71+
FileObject config = phpModule.getSourceDirectory().getFileObject("app/config"); // NOI18N
72+
assert config != null : "app/config not found for CakePHP project " + phpModule.getDisplayName();
73+
if (config != null && config.isFolder()) {
74+
Enumeration<? extends FileObject> children = config.getChildren(true);
75+
while (children.hasMoreElements()) {
76+
FileObject child = children.nextElement();
77+
if (child.isData() && FileUtils.isPhpFile(child)) {
78+
configFiles.add(FileUtil.toFile(child));
79+
}
80+
}
81+
}
82+
if (!configFiles.isEmpty()) {
83+
Collections.sort(configFiles, FILE_COMPARATOR);
84+
}
85+
return configFiles.toArray(new File[configFiles.size()]);
5686
}
5787

5888
@Override

0 commit comments

Comments
 (0)