Отступ Eclipse на Emacs - PullRequest
       10

Отступ Eclipse на Emacs

7 голосов
/ 30 апреля 2009

Я пользователь emacs, который только начал работать в новой компании, где затмение является стандартом. Я пробовал затмение, но я также хочу поэкспериментировать с JDEE (я возвращаюсь на Java после долгого перерыва). До сих пор основным камнем преткновения является совпадение отступов. Есть ли простой способ сделать это, или мне нужно будет углубиться в гайки и болты отступа Emacs?

РЕДАКТИРОВАТЬ: извините за путаницу в этом вопросе: я не хочу, чтобы Eclipse имитировать Emacs, я хочу, чтобы Emacs имитировать Eclipse. Я хочу иметь возможность использовать emacs для изменения кода без искажения отступа, которого ожидают пользователи Eclipse.

Ответы [ 3 ]

9 голосов
/ 05 января 2011

Основное различие, которое я обнаружил между Eclipse (и IntelliJ) и форматированием Java по умолчанию в Emacs, заключается в том, что Emacs выстраивает аргументы функций, продолженные в новую строку с предыдущими аргументами, например, Emacs делает:

BigLongJavaStuff.doFoobarToQuux("argument 1",
                                "argument 2");

и Eclipse:

BigLongJavaStuff.doFoobarToQuux("argument 1",
        "argument 2");

Следующий добавленный к вам файл ~ / .emacs заставит Emacs java-mode сделать то же самое:

;; eclipse-java-style is the same as the "java" style (copied from
;; cc-styles.el) with the addition of (arglist-cont-nonempty . ++) to
;; c-offsets-alist to make it more like default Eclipse formatting -- function
;; arguments starting on a new line are indented by 8 characters
;; (++ = 2 x normal offset) rather than lined up with the arguments on the
;; previous line
(defconst eclipse-java-style
  '((c-basic-offset . 4)
    (c-comment-only-line-offset . (0 . 0))
    ;; the following preserves Javadoc starter lines
    (c-offsets-alist . ((inline-open . 0)
                        (topmost-intro-cont    . +)
                        (statement-block-intro . +)
                        (knr-argdecl-intro     . 5)
                        (substatement-open     . +)
                        (substatement-label    . +)
                        (label                 . +)
                        (statement-case-open   . +)
                        (statement-cont        . +)
                        (arglist-intro  . c-lineup-arglist-intro-after-paren)
                        (arglist-close  . c-lineup-arglist)
                        (access-label   . 0)
                        (inher-cont     . c-lineup-java-inher)
                        (func-decl-cont . c-lineup-java-throws)
                        (arglist-cont-nonempty . ++)
                        )))
  "Eclipse Java Programming Style")
(c-add-style "ECLIPSE" eclipse-java-style)
(customize-set-variable 'c-default-style (quote ((java-mode . "eclipse") (awk-mode . "awk") (other . "gnu"))))
5 голосов
/ 30 апреля 2009

Вам нужно настроить отступ в режиме Java. Взгляните здесь , здесь и здесь .

1 голос
/ 30 апреля 2009

Я буду честен: я не уверен точно, что вы имеете в виду, делая Eclipse для отступа, совпадающего с Emacs. Но вы можете изменить отступ здесь: Windows->Preferences-General->Editors

Выберите параметр «Текстовые редакторы», и вы увидите свойства ширины вкладки.

Еще одна небольшая заметка: в Eclipse встроены привязки клавиш в стиле Emacs: Windows->Preferences->General->Keys

В разделе "Схема" есть опция для Emacs.

Примечание: вы также можете изменить формат вашего кода Java здесь: Windows->Preferences->Java->Code Style->Formatter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...