Вопросы о режиме C # Emacs - отступ и сборка - PullRequest
7 голосов
/ 17 октября 2010

Я установил Режим emacs C # .

Файл .emacs выглядит следующим образом

(require 'csharp-mode)
(setq auto-mode-alist
      (append '(("\\.cs$" . csharp-mode)) auto-mode-alist))
(defun my-csharp-mode-fn ()
  "function that runs when csharp-mode is initialized for a buffer."
  (setq default-tab-width 4)
)
(add-hook  'csharp-mode-hook 'my-csharp-mode-fn t)

Это работает довольно хорошо, но я вижу, что блок ({..}) выровнен так, как я планировал. Я имею в виду, в некоторых случаях у меня есть это.

private static int StringCompare(string x, string y)
{
  int result;
  if (x == null)
    {

    }
}

когда я ожидаю этого

private static int StringCompare(string x, string y)
{
  int result;
  if (x == null)
  {

  }
}

Вместе с этим у меня всегда есть 2 отступа для кода, но я хочу, чтобы он был 4.

Мои вопросы

  • Как я могу контролировать отступ в режиме C # emacs?
  • Как я могу контролировать '{' и '}', чтобы иметь те же отступы, что и предыдущий код.
  • Предоставляет ли режим C # компиляцию для создания файла exe / dll в редакторе с командами?

Я использую режим emacs C # в Mac OS X / mono.

ДОБАВЛЕНО

Я обнаружил, что в режиме C # также можно использовать режим C, поэтому стиль M-x c-set работает, а стиль awk мне подходит. Проблема в том, что я должен включить режим awk всякий раз, когда я использую режим c. Есть ли способ автоматически запустить режим "M-x c-set-style и awk" в режиме c?

Ответы [ 3 ]

10 голосов
/ 18 октября 2010

Добавьте эти строки в ваш my-csharp-mode-fn:

; Set indentation level to 4 spaces (instead of 2)
(setq c-basic-offset 4)
; Set the extra indentation before a substatement (e.g. the opening brace in
; the consequent block of an if statement) to 0 (instead of '+)
(c-set-offset 'substatement-open 0)

В качестве альтернативы, вы можете добавить их в свой общий хук режима C, который работает для всех режимов, связанных с режимом C: C, C ++, Objective-C, Java, C # и другие:

(defun my-c-mode-common-hook ()
  (setq c-basic-offset 4)
  (c-set-offset 'substatement-open 0))
(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)

См. Документацию по режиму CC для получения подробной информации о настройке отступов.

1 голос
/ 18 октября 2010

Для отступа вы хотите (setq c-basic-offset 4) в вашем хуке выше.

0 голосов
/ 11 октября 2012

Совет , данный @Adam Rosenfeld здесь для внесения изменений в ваш файл .emacs, также может быть реализован через простой интерфейс настройки, предоставляемый Emacs.

Для установки c-basic-offset на 4:

M-x customize-option RET c-basic-offset RET

Чтобы установить substatement-open на 0:

M-x customize-option RET c-offsets-alist RET

Простой интерфейс настройки, предоставляемый Emacs, добавит эти настройки в ваш файл .emacs.

Обратите внимание, что эти изменения коснутся всех режимов, связанных с режимом C. Так что, если это не то, что вы хотите, обратитесь к совету Адама о включении соответствующих дополнений в csharp-mode-hook.

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