diff --git a/build.gradle.kts b/build.gradle.kts index 3ea497204..0787da124 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -84,6 +84,9 @@ tasks { withType { sourceCompatibility = it targetCompatibility = it + + // show deprecations + // options.compilerArgs.addAll(listOf("-Xlint:deprecation")) } withType { compilerOptions { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/model/SymfonySymbolSearchModel.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/model/SymfonySymbolSearchModel.java deleted file mode 100644 index c1f7633f0..000000000 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/model/SymfonySymbolSearchModel.java +++ /dev/null @@ -1,70 +0,0 @@ -package fr.adrienbrault.idea.symfony2plugin.action.model; - -import com.intellij.ide.util.gotoByName.ContributorsBasedGotoByModel; -import com.intellij.navigation.ChooseByNameContributor; -import com.intellij.openapi.project.Project; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author Daniel Espendiller - */ -public class SymfonySymbolSearchModel extends ContributorsBasedGotoByModel { - - public SymfonySymbolSearchModel(@NotNull Project project, @NotNull ChooseByNameContributor[] contributors) { - super(project, contributors); - } - - @Override - public String getPromptText() { - return "Symfony Symbol"; - } - - @Override - public String getNotInMessage() { - return "Nothing found"; - } - - @Override - public String getNotFoundMessage() { - return "Nothing found"; - } - - @Nullable - @Override - public String getCheckBoxName() { - return null; - } - - @Override - public char getCheckBoxMnemonic() { - return 0; - } - - @Override - public boolean loadInitialCheckBoxState() { - return false; - } - - @Override - public void saveInitialCheckBoxState(boolean state) { - - } - - @NotNull - @Override - public String[] getSeparators() { - return new String[0]; - } - - @Nullable - @Override - public String getFullName(Object element) { - return element.toString(); - } - - @Override - public boolean willOpenEditor() { - return true; - } -} diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ui/ServiceArgumentSelectionDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ui/ServiceArgumentSelectionDialog.java index 7e4d88aff..a1c5250cf 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ui/ServiceArgumentSelectionDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/action/ui/ServiceArgumentSelectionDialog.java @@ -207,7 +207,7 @@ public boolean isCellEditable(ServiceParameter modelParameter) { public TableCellEditor getEditor(ServiceParameter modelParameter) { Set sorted = modelParameter.getPossibleServices(); - ComboBox comboBox = new ComboBox(sorted.toArray(new String[0]), 200); + ComboBox comboBox = new ComboBox<>(sorted.toArray(new String[0]), 200); comboBox.setEditable(true); return new DefaultCellEditor(comboBox); diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/DoctrineUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/DoctrineUtil.java index d3687ac23..50469f624 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/DoctrineUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/DoctrineUtil.java @@ -186,7 +186,7 @@ public static String getAnnotationRepositoryClass(@NotNull PhpDocTag phpDocTag, phpClass, text, "repositoryClass", - aVoid -> AnnotationUtil.getUseImportMap(phpDocTag) + aVoid -> AnnotationBackportUtil.getUseImportMap(phpDocTag) ); if (repositoryClass == null) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/EntityHelper.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/EntityHelper.java index 11dbbfb2b..0be4594f1 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/EntityHelper.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/EntityHelper.java @@ -411,7 +411,7 @@ public static Collection getModelFields(@NotNull PhpClass ph PhpDocComment docComment = phpClass.getDocComment(); if(docComment != null) { if(AnnotationBackportUtil.hasReference(docComment, "\\Doctrine\\ORM\\Mapping\\Entity")) { - Map useImportMap = AnnotationUtil.getUseImportMap(docComment); + Map useImportMap = AnnotationBackportUtil.getUseImportMap(docComment); for(Field field: phpClass.getFields()) { if (!field.isConstant()) { if (AnnotationBackportUtil.hasReference(field.getDocComment(), ANNOTATION_FIELDS)) { diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/driver/DoctrinePhpMappingDriver.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/driver/DoctrinePhpMappingDriver.java index 082d4213f..9c3e3c7c6 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/driver/DoctrinePhpMappingDriver.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/doctrine/metadata/driver/DoctrinePhpMappingDriver.java @@ -76,7 +76,7 @@ public DoctrineMetadataModel getMetadata(@NotNull DoctrineMappingDriverArguments // collect import context based on the class name String fqn = containingClass.getFQN(); if (!maps.containsKey(fqn)) { - maps.put(fqn, AnnotationUtil.getUseImportMap(field.getDocComment())); + maps.put(fqn, AnnotationBackportUtil.getUseImportMap(field.getDocComment())); } DoctrineModelField modelField = new DoctrineModelField(field.getName()); diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/ContainerCollectionResolver.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/ContainerCollectionResolver.java index e400299bb..d4539a8d5 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/ContainerCollectionResolver.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/ContainerCollectionResolver.java @@ -465,7 +465,7 @@ private Map getParameters() { // user input here; secure nullable values String key = Entry.getKey(); if(key != null) { - parametersMap.put(key, new ContainerParameter(key, Entry.getValue())); + parametersMap.put(key, new ContainerParameter(key, Entry.getValue(), false)); } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/externalizer/ObjectStreamDataExternalizer.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/externalizer/ObjectStreamDataExternalizer.java index 23dc1cef0..d82a29625 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/externalizer/ObjectStreamDataExternalizer.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/stubs/indexes/externalizer/ObjectStreamDataExternalizer.java @@ -32,7 +32,9 @@ public T read(@NotNull DataInput in) throws IOException { T object = null; try { - object = (T) input.readObject(); + @SuppressWarnings("unchecked") + T readObject = (T) input.readObject(); + object = readObject; } catch (ClassNotFoundException | ClassCastException ignored) { } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java index 4b76b0179..b0b3266da 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/path/TwigPath.java @@ -46,7 +46,17 @@ public TwigPath(@NotNull String path, @NotNull String namespace, @NotNull TwigUt this.customPath = customPath; } + public static TwigPath createTwigPath(@NotNull String path, @NotNull String namespace, @NotNull TwigUtil.NamespaceType namespaceType, boolean customPath, boolean enabled) { + TwigPath twigPath = new TwigPath(path, namespace, namespaceType, customPath); + twigPath.enabled = enabled; + return twigPath; + } + public static TwigPath createClone(@NotNull TwigPath twigPath) { + return createClone(twigPath, twigPath.isEnabled()); + } + + public static TwigPath createClone(@NotNull TwigPath twigPath, boolean enabled) { TwigPath newTwigPath = new TwigPath( twigPath.getPath(), twigPath.getNamespace(), @@ -54,7 +64,7 @@ public static TwigPath createClone(@NotNull TwigPath twigPath) { twigPath.isCustomPath() ); - newTwigPath.setEnabled(twigPath.isEnabled()); + newTwigPath.enabled = enabled; return newTwigPath; } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java index 577648898..28bbb806e 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/templating/util/TwigUtil.java @@ -1499,10 +1499,11 @@ public static List getTwigNamespaces(@NotNull Project project, boolean } // disable namespace explicitly disabled by user - for(TwigPath twigPath: twigPaths) { + for(int i = 0; i < twigPaths.size(); i++) { + TwigPath twigPath = twigPaths.get(i); TwigNamespaceSetting twigNamespaceSetting = findManagedTwigNamespace(project, twigPath); if(twigNamespaceSetting != null) { - twigPath.setEnabled(false); + twigPaths.set(i, TwigPath.createClone(twigPath, false)); } } @@ -1516,7 +1517,7 @@ public static List getTwigNamespaces(@NotNull Project project, boolean if(twigNamespaceSettings != null) { for(TwigNamespaceSetting twigNamespaceSetting: twigNamespaceSettings) { if(twigNamespaceSetting.isCustom()) { - twigPaths.add(new TwigPath(twigNamespaceSetting.getPath(), twigNamespaceSetting.getNamespace(), twigNamespaceSetting.getNamespaceType(), true).setEnabled(twigNamespaceSetting.isEnabled())); + twigPaths.add(TwigPath.createTwigPath(twigNamespaceSetting.getPath(), twigNamespaceSetting.getNamespace(), twigNamespaceSetting.getNamespaceType(), true, twigNamespaceSetting.isEnabled())); } } } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/form/TranslatorKeyExtractorDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/form/TranslatorKeyExtractorDialog.java index b3aa8942c..fc7e7536d 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/form/TranslatorKeyExtractorDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/translation/form/TranslatorKeyExtractorDialog.java @@ -37,7 +37,7 @@ public class TranslatorKeyExtractorDialog extends JDialog { private JButton buttonCancel; private JTextField textTranslationKey; private JPanel panelTableView; - private JComboBox comboBox1; + private JComboBox comboBox1; private JCheckBox checkNavigateTo; private final ListTableModel listTableModel; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodParameterDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodParameterDialog.java index def7895db..e66d037bd 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodParameterDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodParameterDialog.java @@ -23,8 +23,8 @@ public class MethodParameterDialog extends JDialog { private JPanel contentPane; private JButton buttonOK; private JButton buttonCancel; - private JComboBox comboProvider; - private JComboBox comboContributor; + private JComboBox comboProvider; + private JComboBox comboContributor; private JTextField textCallTo; private JTextField textMethodName; private JTextField textIndex; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodSignatureTypeDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodSignatureTypeDialog.java index d621ce42c..53859c6e3 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodSignatureTypeDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/MethodSignatureTypeDialog.java @@ -23,7 +23,7 @@ public class MethodSignatureTypeDialog extends JDialog { private JPanel contentPane; private JButton buttonOK; private JButton buttonCancel; - private JComboBox comboProvider; + private JComboBox comboProvider; private JTextField textCallTo; private JTextField textMethodName; private JTextField textIndex; diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java index 088945ea1..cf80365ca 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigNamespaceDialog.java @@ -87,7 +87,7 @@ private void onOK() { String namespacePath = this.namespacePath.getText(); - TwigPath twigPath = new TwigPath(namespacePath, namespace, TwigUtil.NamespaceType.valueOf((String) this.namespaceType.getSelectedItem()), true); + TwigPath twigPath = TwigPath.createTwigPath(namespacePath, namespace, TwigUtil.NamespaceType.valueOf((String) this.namespaceType.getSelectedItem()), true, this.chkboxEnabled.isSelected()); if (namespacePath.isEmpty()) { dispose(); return; @@ -106,7 +106,6 @@ private void onOK() { this.tableView.setRowSelectionInterval(row, row); } - twigPath.setEnabled(this.chkboxEnabled.isSelected()); dispose(); } diff --git a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigSettingsForm.java b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigSettingsForm.java index 7e6e33e82..0d52e6ec7 100644 --- a/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigSettingsForm.java +++ b/src/main/java/fr/adrienbrault/idea/symfony2plugin/ui/TwigSettingsForm.java @@ -107,7 +107,7 @@ public void mouseClicked(MouseEvent e) { for (TwigPath twigPath : sortableLookupItems) { // dont use managed class here // @TODO state to enabled (should not be here) - TwigSettingsForm.this.modelList.addRow(TwigPath.createClone(twigPath).setEnabled(true)); + TwigSettingsForm.this.modelList.addRow(TwigPath.createClone(twigPath, true)); } } }); @@ -281,8 +281,12 @@ public Boolean valueOf(TwigPath twigPath) { } public void setValue(TwigPath twigPath, Boolean value) { - twigPath.setEnabled(value); - TwigSettingsForm.this.tableView.getListTableModel().fireTableDataChanged(); + int index = TwigSettingsForm.this.tableView.getListTableModel().getItems().indexOf(twigPath); + if (index >= 0) { + TwigPath newTwigPath = TwigPath.createClone(twigPath, value); + TwigSettingsForm.this.tableView.getListTableModel().removeRow(index); + TwigSettingsForm.this.tableView.getListTableModel().insertRow(index, newTwigPath); + } } public int getWidth(JTable table) {