2010-09-28 4 views
4

Есть ли способ сообщить NetBeans о выполнении определенного действия при сохранении файла? например удаление неиспользуемых импортов при сохранении исходного файла?Действия OnSave в NetBeans 6.9

ответ

0

Это был интересный вопрос ... поскольку я считаю, что вам нужно будет написать настраиваемый плагин NetBeans, чтобы делать то, что вы хотите (функциональность недоступна из коробки) вы искали предлог для изучения разработки плагинов NetBeans.

Однако, потратив пару часов на чтение учебников и проскальзывание через javadocs ... стало ясно, что этот предмет является довольно большим укусом, чтобы пережевывать и, вероятно, гораздо более активным, чем вы хотите.


Я думаю, что лучшее предложение забыть об удалении неиспользуемого импорта в экономии времени, и вместо того, чтобы выполнить этот шаг в наращивания времени. NetBeans предлагает отличную интеграцию с Ant и/или Maven (для целей сборки это всего лишь оболочка GUI вокруг этих инструментов), и есть множество задач Ant, которые могут делать то, что вы хотите. См:

http://ant.apache.org/external.html
(обратите внимание на «CleanImports» и «Importscrubber» задачи)

Если ваш проект (ы) NetBeans являются Maven на основе, то вы всегда можете подключить один из этих муравьев задач там используя AntRun plugin for Maven.

Если вы не имеете дело с Ant или Maven напрямую в NetBeans, то просто перейдите на вкладку «Файлы» и посмотрите на корневой каталог вашего проекта. Если его проект Maven, сценарий сборки будет называться pom.xml. В противном случае ваш проект, как правило, будет основан на Ant, а скрипт сборки будет называться build.xml. Документация по этим пунктам выше должна четко разъяснить, как двигаться дальше оттуда.


Я заметил, что эти две задачи Ant не были обновлены в некоторое время, так что если у вас возникли проблемы вы можете проверить очень популярный и уточненный PMD system, который имеет свой собственный documentation for integrating with NetBeans , Тем не менее, проблема заключается в PMD в первую очередь для создания отчетов ... Я не знаю, можно ли его использовать для фактического принятия действий и изменения исходных файлов.

0

Это не очень хорошая практика и NetBeans не поддерживает его.

+2

Возможно, это может измениться (почему это не хороший стиль) или предоставить некоторые ссылки (специфика о том, что NetBeans не поддерживает это)? Прямо сейчас ваш ответ больше похож на комментарий. – jadarnel27

0

Я воскрешу эту тему.

Ну, этот код проверен с помощью Netbeans 7.4. здесь Я переопределяю действие сохранения по умолчанию в методе actionPerformed. Если вы решите сделать это самостоятельно, создайте новое действие с помощью мастера, а затем вызовите действие сохранения внутри метода actionPerformed.

package yourpackage; 

import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JOptionPane; 
import org.openide.awt.ActionID; 
import org.openide.awt.ActionReference; 
import org.openide.awt.ActionReferences; 
import org.openide.awt.ActionRegistration; 
import org.openide.util.NbBundle.Messages; 

@ActionID(
     category = "File", 
     id = "BZ.SaveAction" 
) 
@ActionRegistration(
     iconBase = "BZ/Save.png", 
     displayName = "#CTL_SaveAction" 
) 
@ActionReferences({ 
    @ActionReference(path = "Menu/File", position = 750), 
    @ActionReference(path = "Toolbars/File", position = 0), 
    @ActionReference(path = "Shortcuts", name = "D-S") 
}) 
@Messages("CTL_SaveAction=Save") 
public final class SaveAction implements ActionListener { 

    org.openide.actions.SaveAction sa = org.openide.util.actions.CallbackSystemAction.get(org.openide.actions.SaveAction.class); 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     // custom code 
     JOptionPane.showMessageDialog(null, "custum message "); 
     sa.performAction(); 
    } 
} 
0

Goto Tools-> Options выбрать Editor там выбрать On Save Tab теперь выбрать Java из выпадающего меню. Итак, теперь выберите Organize Imports. Надеюсь, что это поможет вам.

Смежные вопросы