Статьи

NetBeans 7.1: создание настраиваемой подсказки

Я говорил о некоторых из моих любимых подсказок NetBeans в публикациях « Семь советов NetBeans для модернизации кода Java и семь незаменимых подсказок NetBeans Java» . Четырнадцать подсказок, охватываемых этими двумя сообщениями, составляют небольшую часть от общего числа советов, которые NetBeans поддерживает «из коробки». Однако пользователю NetBeans доступна еще большая гибкость, поскольку NetBeans 7.1 позволяет писать собственные подсказки . Я рассматриваю простой пример этого в этом посте.

Сообщение пользователя Geertjan Wielenga о пользовательских декларативных подсказках в среде IDE NetBeans 7.1 начинается с описания диалогового окна NetBeans «Проверять и преобразовывать» (AKA « Проверять и обрабатывать »), которое доступно из меню «Refactor» (которое, в свою очередь, доступно через раскрывающийся список). Меню «Refactor» вдоль строки меню или щелчком правой кнопкой мыши в редакторе NetBeans). На следующем снимке экрана показано, как это выглядит.

Поле «Проверка» диалогового окна «Проверка и преобразование» позволяет пользователю NetBeans настроить, какой проект или файл следует проверять. Часть «Использование» диалогового окна «Проверка и преобразование» позволяет пользователю NetBeans указывать, какие подсказки проверять. В этом случае я проверяю, используя пользовательские подсказки, и я могу увидеть это, нажав кнопку «Управление» и установив флажок «Пользовательский». Обратите внимание, что если «Custom» не является опцией, когда вы впервые упоминаете об этом, вам, вероятно, нужно нажать кнопку «New» в левом нижнем углу.

Когда я нажимаю «Управление» и отмечаю поле «Пользовательский», оно расширяется, и я вижу только что созданную подсказку «Проверка». Если я нажму на это имя, я могу переименовать его и сделать это в этом случае. Переименованная проверка («CurrentDateDoesNotNeedSystemCurrentMillis») показана на следующем снимке экрана.

Чтобы создать подсказку и предоставить описание, отображаемое в поле, я могу нажать кнопку «Редактировать скрипт». Это приводит к появлению небольшого окна редактора, показанного на следующем снимке экрана.

Если для редактирования пользовательской проверки / подсказки требуется больше места, кнопка «Открыть в редакторе» приведет к открытию текста в текстовом редакторе NetBeans, в котором редактируется обычный код Java и код XML.

При наличии настраиваемой инспекции / подсказки пришло время попробовать ее на некотором коде Java. В следующем листинге кода используется посторонний вызов System.currentTimeMillis () и его результат передается конструктору с одним длинным аргументом java.util.Date . В этом нет необходимости, поскольку конструктор Date без аргументов автоматически создаст экземпляр экземпляра Date на основе текущего времени (времени сейчас).

RedundantSystemCurrentTimeMillis.java

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
package dustin.examples;
 
import static java.lang.System.out;
import java.util.Date;
 
/**
 * Simple class to demonstrate NetBeans custom hint.
 *
 * @author Dustin
 */
public class RedundantSystemCurrentTimeMillis
{
   public static void main(final String[] arguments)
   {
      final Date date = new Date(System.currentTimeMillis());
      out.println(date);
   }
}

Приведенный выше код работает правильно, но может быть более кратким. Когда я говорю NetBeans связать мою новую проверку с этим проектом в диалоговом окне «Проверка и преобразование», NetBeans может пометить это для меня и рекомендовать исправление. Следующие три снимка экрана демонстрируют, что NetBeans помечает предупреждение желтым значком лампочки и желтым подчеркиванием, рекомендует исправление, когда я нажимаю на лампочку, и реализует предлагаемое исправление, когда я выбираю его.

Как показано выше, простой пользовательский совет позволяет NetBeans идентифицировать, помечать и исправлять по моей просьбе ненужное использование System.curentTimeMillis() . Я писал ранее, что подсказки NetBeans настолько удобны, потому что на самом деле они делают три вещи для разработчика Java: автоматически отмечают области для улучшения кода для разработчика, часто автоматически исправляют проблему, если это необходимо, и сообщают о лучших способах написания Java , Для последнего преимущества в этом случае, наличие этой пользовательской подсказки помогает донести до других разработчиков Java немного больше знаний о классе Date и лучший способ создать его экземпляр, когда желательны текущая дата / время.

Наиболее сложным аспектом использования пользовательских подсказок NetBeans является поиск документации о том, как их использовать. Лучшими источниками, доступными в настоящее время, являются заметки о выпуске NetBeans 7.1 , несколько публикаций Wielenga ( пользовательские декларативные советы в среде IDE NetBeans 7.1 , « О, нет вектора!» , « О, нет @ Override!», «О, нет Utilities.loadImage!» ) И Ян Лахода. jackpot30 Rules Language (охватывает синтаксис языка правил, используемый пользовательскими проверками / подсказками и показанный в простом примере выше). Учебник по рефакторингу с проверкой и преобразованием в редакторе Java IDE NetBeans также содержит раздел по управлению настраиваемыми подсказками . Надеемся, что исправление ошибки 210023 поможет в этой ситуации.

Мой пример настраиваемой подсказки NetBeans работает специально с классом Date . Интересный и несколько связанный с этим поток StackOverflow спрашивает, можно ли создать настраиваемую подсказку NetBeans, чтобы рекомендовать использовать Joda Time вместо Date или календаря . Ответ в этом потоке относится к учебному руководству по модулю подсказок по Java для NetBeans . Просмотр этого руководства напоминает мне, что подход, описанный в этом посте и доступный в NetBeans 7.1, безусловно, улучшен и проще в использовании.

Кстати, подсказка, подобная подсказке, запрашиваемой в потоке StackOverflow, на который есть ссылка, легко написать в NetBeans 7.1. В этом примере преобразование не выполняется, поскольку изменение класса Date класс Joda Time, вероятно, потребует большего количества изменений в коде, чем простое преобразование. Таким образом, эта подсказка становится просто рекомендацией перейти на Joda Time. На следующих снимках экрана показана простая подсказка и способ их отображения в редакторе NetBeans.

Кажется, что каждый выпуск NetBeans добавляет больше полезных советов к уже большому количеству полезных советов, которые поддерживает NetBeans. Однако разработчики NetBeans не могут добавлять все подсказки, которые могут понадобиться каждой команде или проекту. Кроме того, нежелательно иметь все возможные подсказки, которые каждый член сообщества мог бы добавить, добавленные в IDE. По этой причине возможность указания пользовательских подсказок в NetBeans и возможность выборочно применять эти подсказки к проектам и файлам являются весьма желательными возможностями.

Ссылка: Создание настраиваемой подсказки NetBeans 7.1 от нашего партнера по JCG Дастина Маркса в блоге Inspired by Actual Events .