This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
ale/test/fixers/test_ocamlformat_fixer_callback.vader
Andrey Popp b9fb62a4cd Make ocamlformat work without temporary files
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.
2018-11-04 20:32:56 +03:00

38 lines
1.1 KiB
Text

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(''))