mirror of
https://github.com/dense-analysis/ale
synced 2024-12-25 15:42:26 +00:00
b9fb62a4cd
Problem: ocamlformat is configured to format files in-place and thus go via creating a temporary file for that. Because temporary file resides in a different directory ocamlformat can't find `.ocamlformat` configuration files in an original location of source files. Solution: ocamlformat since version 0.8 can read sources on stdin and spur result on stdout. We reconfigure ocamlformat to use a simpler interface.
39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
Before:
|
|
Save g:ale_ocaml_ocamlformat_executable
|
|
Save g:ale_ocaml_ocamlformat_options
|
|
|
|
" Use an invalid global executable, so we don't match it.
|
|
let g:ale_ocaml_ocamlformat_executable = 'xxxinvalid'
|
|
let g:ale_ocaml_ocamlformat_options = ''
|
|
|
|
call ale#test#SetDirectory('/testplugin/test/fixers')
|
|
|
|
After:
|
|
Restore
|
|
|
|
call ale#test#RestoreDirectory()
|
|
|
|
Execute(The ocamlformat callback should return the correct default values):
|
|
call ale#test#SetFilename('../ocaml-test-files/testfile.re')
|
|
|
|
AssertEqual
|
|
\ {
|
|
\ 'command': ale#Escape('xxxinvalid')
|
|
\ . ' --name=' . ale#Escape(bufname(bufnr('')))
|
|
\ . ' -',
|
|
\ },
|
|
\ ale#fixers#ocamlformat#Fix(bufnr(''))
|
|
|
|
Execute(The ocamlformat callback should include custom ocamlformat options):
|
|
let g:ale_ocaml_ocamlformat_options = "-m 78"
|
|
call ale#test#SetFilename('../ocaml-test-files/testfile.re')
|
|
|
|
AssertEqual
|
|
\ {
|
|
\ 'command': ale#Escape('xxxinvalid')
|
|
\ . ' ' . g:ale_ocaml_ocamlformat_options
|
|
\ . ' --name=' . ale#Escape(bufname(bufnr('')))
|
|
\ . ' -',
|
|
\ },
|
|
\ ale#fixers#ocamlformat#Fix(bufnr(''))
|