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