Reputation: 5500
I am coding Ocaml with Emacs, at the moment the setting of the indentation of if
gives the following:
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4
I would like to realize the same format as Caml programming guidelines:
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4
Could anyone tell me which parameter is related to that? Thank you
Edit1: here is my .emacs
Upvotes: 1
Views: 509
Reputation: 5048
You can now use ocp-indent which will (almost always) respect the Caml programming guidelines. The only difference is that it will indent the last expression, to avoid confusing scoping errors:
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4;
e5
Upvotes: 2
Reputation: 5301
You can set the variable tuareg-if-then-else-indent
to 0 which will then indent your example as
if cond1 then e1 else
if cond2 then e2 else
if cond3 then e3 else
e4
I don't know if that causes other undesirable indentation in case you don't have nested if's though. You can also M-x customize-group RET tuareg RET
to see all the indentation (and other) options.
Upvotes: 1
Reputation: 5167
Something seems to be wrong. Are you using the caml-mode from the OCaml distribution ? Because I do and it indents according to the programming guidelines without setting any parameter. That's what I have in my .emacs
(the mode is installed in ~/.emacs.d/caml-mode
):
;; Caml mode
(setq load-path (cons "~/.emacs.d/caml-mode" load-path))
(setq auto-mode-alist (cons '("\\.ml[iylp]?" . caml-mode) auto-mode-alist))
(autoload 'caml-mode "caml" "Major mode for editing Caml code." t)
(autoload 'run-caml "inf-caml" "Run an inferior Caml process." t)
(autoload 'camldebug "camldebug" "Run the Caml debugger." t)
(if window-system (require 'caml-font))
If you are using tuareg-mode I cannot help you. Note however that, contrary to popular belief, the caml-mode from the distribution is perfectly fine and is still maintained by OCaml's authors.
Upvotes: 1
Reputation: 807
Are you not satisfied with the following?
if c1 then e1
else if c2 then e2
else if c3 then e3
else e4
Upvotes: 0