As I see in erlang community common way to format code is how emacs erlang mode does.
Is there any way to call emacs to format code from vim (line, selected text, and hole file)?
Also I would appreciate if someone point me to some emacs docs, which describes this indent logic?
Edit: actually I know how to call something from vim, but i dont know what to call from emacs side.
The intellij erlang plugin does exactly that : ErlangEmacsFormatAction.java
/*
* Copyright 2013 Sergey Ignatov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
final GeneralCommandLine commandLine = new GeneralCommandLine();
commandLine.setExePath("emacs");
commandLine.addParameters("--batch", "--eval");
String s = "\n" +
"(progn (find-file \"{0}\")\n" +
" (require ''erlang-start)\n" +
" (erlang-mode)\n" +
" (untabify (point-min) (point-max))\n" +
" (delete-trailing-whitespace)\n" +
" (erlang-indent-current-buffer)\n" +
" (write-region (point-min) (point-max) \"{1}\")\n" +
" (kill-emacs))";
commandLine.addParameter(MessageFormat.format(s, virtualFile.getCanonicalPath(), tmpFile.getCanonicalPath()));
It calls an emacs batch subprocess with the file as one of its arguments. It should be easy to implement something similar in vimscript, check Vim External Commands.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With