До вчерашнего дня я был счастливым пользователем готового emacs + erlang-mode.Затем мой коллега начал вносить свой вклад в проект (используя некоторый редактор окон), и, похоже, он не очень доволен смешанным режимом отступа, используемым по умолчанию в erlang-mode.Вот пример.Эта часть функции, написанная с использованием авто-отступа в режиме erlang
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 имеет три вкладки.Строка 5 имеет 3 отступа и 4 пробела.Строка 6 имеет 4 вкладки.В результате большинство (тупых) редакторов (в отличие от emacs) отображают строки 5 и 6 (начинающиеся с {ibrowse и {ReqId) на одном уровне отступа.Который выглядит некрасиво.(даже stackoverflow показывает их таким образом).
Я взглянул на несколько известных программных продуктов erlang (например, gproc), и большинство из них, похоже, используют режим отступа только для пробелов.
Итак, мои вопросы:
- Я делаю это неправильно (кажется мне вероятным).
- Если только пробелы являются преобладающим способом отступа, почему режим erlang не реализует его (или не настроен на использование по умолчанию)?
- Как я могу настроить режим erlang для принудительного использования только пробелов?
- В конце концов, что такое "правильный путь"?Такие вещи, как совместимость между редакторами, кажется, имеют значение, и мы не можем сделать все редакторы такими же умными, как emacs.