Fino a ieri, ero un utente felice di emacs appena pronto + modalità erlang. Poi il mio collega ha iniziato a contribuire al progetto (usando un editor di windows), e sembra che non sia molto contento della modalità di rientro misto usata di default da erlang-mode. Ecco un esempio. Questa è una parte di una funzione, scritto utilizzando auto-rientro in Erlang-modeQual è il modo corretto di rientrare in 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} ->
Se si dà un'occhiata più da vicino, vedrai che la linea 2 (a partire da GetReqIds) è rientrato con 4 posti. La riga 3 è rientrata con 3 schede. La riga 5 è rientrata con 3 schede + 4 spazi. La riga 6 è rientrata con 4 schede. Di conseguenza, la maggior parte degli editor (stupidi) (a differenza di emacs) mostrano le linee 5 e 6 (quelle che iniziano con {ibrowse e {ReqId) allo stesso livello di indentazione. Che sembra brutto. (anche StackOverflow li mostra in questo modo).
Ho dato un'occhiata ad alcuni importanti software di erlang (come gproc) e molti di loro sembrano usare la modalità di indentazione solo spazi.
Quindi le mie domande sono:
- sto facendo di sbagliato (sembra probabile per me).
- Se la modalità di indentazione predominante è solo spazi, perché la modalità erlang non la implementa (o non è configurata per utilizzarla di default)?
- Come posso configurare la modalità erlang per forzare solo gli spazi?
- Qual è il "modo giusto" dopo tutto? Cose come la compatibilità tra editor possono sembrare importanti e non possiamo rendere tutti gli editor intelligenti come quelli di emacs.
Direi che solo gli spazi sono preferiti m ode per tutte le lingue, specialmente nel caso in cui nel progetto vengano utilizzati diversi editor/id. Da 3 a 7 byte extra salvati da schede non ne valgono la pena. –
@HolgerJust - È esattamente come mi sento in questo momento :) – loxs
Ero solito pensare che solo le schede fossero le migliori (dato che salva byte :-p ora sul serio, perché è più difficile ottenere rientri non allineati solo di uno difficile da individuare carattere). Ma alla fine, ho sentito che il modo più bello era mescolare: schede per la rientranza sintattica più spazi per l'allineamento interiore. – fortran