Каков правильный способ отступов Эрланг?

До вчерашнего дня я был счастливым пользователем готового emacs + erlang-mode. Затем мой коллега начал участвовать в проекте (используя какой-либо редактор окон), и, похоже, он не очень доволен смешанным режимом отступа, который по умолчанию используется erlang-mode. Вот пример. Это часть функции, написанная с использованием автоматического отступа в erlang-mode

handle_info(get_gss_latest_versions, State) ->
    GetReqIds = fun(Branch) ->
            GetInfoUri = State#state.gss_uri ++ Branch ++ "/api/getinfo",
            case ibrowse:send_req(GetInfoUri, [], get, [], [{stream_to, self()}]) of
                {ibrowse_req_id, ReqId} ->
                {ReqId, Branch};
                {error, Reason} ->

Если вы посмотрите ближе, вы увидите, что строка 2 (начиная с GetReqIds) имеет отступы с 4 пробелами. Строка 3 имеет отступ с 3 вкладками. Строка 5 имеет отступы с 3 вкладками + 4 пробела. Строка 6 имеет отступ с 4 вкладками. В результате большинство (немых) редакторов (в отличие от emacs) отображают строки 5 и 6 (те, которые начинаются с {ibrowse и {ReqId) на том же уровне отступов. Который выглядит уродливым. (даже stackoverflow показывает их таким образом).

Я просмотрел несколько выдающихся программных продуктов erlang (например, gproc), и большинство из них, похоже, используют режим отступов только для пробелов.

Итак, мои вопросы:

  • Я делаю это неправильно (кажется мне вероятным).
  • Если только пробелы являются преобладающим способом отступов, почему erlang-mode не реализует его (или не настроен на его использование по умолчанию)?
  • Как настроить erlang-mode для принудительной простоты?
  • Что означает "правильный путь"? Такие вещи, как совместимость с перекрестным редактором, кажутся важными, и мы не можем сделать все редакторы такими же умными, как emacs.

Ответ 2

Чтобы вообще отключить вкладки в отступлении не только, но и для erlang-mode, используйте:

(set-default 'indent-tabs-mode nil)