До вчерашнего дня я был счастливым пользователем нестандартного emacs + erlang-mode. Затем мой коллега начал вносить свой вклад в проект (используя какой-то редактор Windows), и, похоже, он не очень доволен режимом смешанного отступа, используемым по умолчанию в erlang-mode. Вот пример. Это часть функции, написанная с использованием auto-indent в 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), и большинство из них, похоже, используют режим отступа только пробелов.
Поэтому мои вопросы: