Подтвердить что ты не робот

Как отменить существующий код OCaml

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

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

g g V g =

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

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

Ответ 3

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

ocp-indent bad-indented-ocaml.ml > well-indented-file.ml

Ответ 4

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

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