Как сделать отступ для существующего кода OCaml - PullRequest
12 голосов
/ 18 декабря 2009

У меня ~ 30.000 строк кода с плохим отступом OCaml (включая файлы mly и mll) и я хотел бы сделать отступ. Я попробовал поискать варианты «ocaml indent», и самое близкое, что я могу получить, - это использовать Omlet.vim и делать отступ по одной строке за раз (через C-f в режиме вставки). Есть ли способ сделать отступ для всех 30000 строк?

Ответы [ 4 ]

8 голосов
/ 18 декабря 2009

Я использую Emacs в качестве редактора с установленным пакетом:

http://caml.inria.fr/pub/docs/u3-ocaml/emacs/index.html

Чтобы сделать отступ для существующего кода, вам нужно выделить его, а затем использовать комбинацию клавиш C-M-\

Вы можете довольно легко написать скрипт для каждого файла, и я считаю, что отступ довольно хорош.

3 голосов
/ 03 июня 2010

Когда я хочу сделать заново весь файл в vim, я использую следующую последовательность клавиш:

г г В Г =

Для вас, g g перемещает курсор в начало файла. V входит в визуальный режим. G выбирает до конца файла. = отступ для выбранных строк.

Это должно быть намного быстрее, чем ваш метод применения отступа строка за строкой, но при этом будут использоваться те же правила (предупреждение: при использовании Omlet отступ для целого файла может занять некоторое время).

1 голос
/ 31 января 2016

Теперь можно использовать ocp-indent (opam install ocp-indent) и вызывать его так:

ocp-indent bad-indented-ocaml.ml > well-indented-file.ml
0 голосов
/ 03 февраля 2016

Используйте ocp-indent инструмент для этого. Вот пример Makefile правила, которое автоматически сделает отступ для ml файлов.

.PHONY: auto-ocp-indent
auto-ocp-indent: *.ml
    for mlfile in $^; do ocp-indent -i $$mlfile; done
...