Emacs исправляет отступ java-mode

#emacs

#emacs

Вопрос:

Предположим, что код :

   Command provisionHostCommand = new Command() {
      @Override
      public void execute() {
        final List<Host> hosts = new ArrayList<Host>(display.getSelectionModel().getSelectedSet());
        eventBus.fireEvent(new ProvisioningHostEvent(hosts));
      }
    };
  

Взгляните на отступ. Для анонимного класса Command есть 4 пробела. Для моего c-basic-offset установлено значение 2. Как я могу уменьшить пространство отступов в анонимном классе?

Спасибо.

Ответ №1:

Ну, это, кажется, работает для меня:

 (c-set-offset 'inexpr-class 0)
  

Я не совсем уверен, почему, однако, я просмотрел документацию, и, похоже, предполагается, что анонимные классы должны иметь только отступ c-basic-offset . Возможно, они имеют двойной отступ из-за открывающей фигурной скобки?

Редактировать: как насчет этого обходного пути из http://www.mail-archive.com/jde@sunsite.auc.dk/msg01159.html ?

 (add-hook 'c-mode-common-hook
              '(lambda ()
                     (c-set-offset 'substatement-open 0)
                     (if (assoc 'inexpr-class c-offsets-alist)
                             (c-set-offset 'inexpr-class 0))))
  

Комментарии:

1. Да, точно. Я пытаюсь использовать c-basic-offset равным 3, и строка имеет двойной отступ (6 пробелов). Как я могу исправить ошибку?