From 115ad17ace047cab20ccc67f79c943aaf3f0f291 Mon Sep 17 00:00:00 2001 From: jiz4oh <41264693+jiz4oh@users.noreply.github.com> Date: Sun, 20 Aug 2023 17:43:31 +0800 Subject: Support format xml file which haven't yet persisted at the disk (#4585) Support format xml file which haven't yet persisted at the disk --- autoload/ale/fixers/xmllint.vim | 11 +++++++++-- test/fixers/test_xmllint_fixer_callback.vader | 10 ++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/autoload/ale/fixers/xmllint.vim b/autoload/ale/fixers/xmllint.vim index b14ffd36..9e478feb 100644 --- a/autoload/ale/fixers/xmllint.vim +++ b/autoload/ale/fixers/xmllint.vim @@ -1,4 +1,4 @@ -" Author: Cyril Roelandt +" Author: Cyril Roelandt , jiz4oh " Description: Integration of xmllint with ALE. call ale#Set('xml_xmllint_executable', 'xmllint') @@ -7,7 +7,14 @@ call ale#Set('xml_xmllint_indentsize', 2) function! ale#fixers#xmllint#Fix(buffer) abort let l:executable = ale#Escape(ale#Var(a:buffer, 'xml_xmllint_executable')) - let l:filename = ale#Escape(bufname(a:buffer)) + let l:filename = bufname(a:buffer) + + if empty(l:filename) + let l:filename = '%t' + else + let l:filename = ale#Escape(l:filename) + endif + let l:command = l:executable . ' --format ' . l:filename let l:indent = ale#Var(a:buffer, 'xml_xmllint_indentsize') diff --git a/test/fixers/test_xmllint_fixer_callback.vader b/test/fixers/test_xmllint_fixer_callback.vader index 54fe05bd..103b0f7b 100644 --- a/test/fixers/test_xmllint_fixer_callback.vader +++ b/test/fixers/test_xmllint_fixer_callback.vader @@ -12,6 +12,16 @@ Before: After: Restore +Execute(The xmllint callback should return the correct default command with unpersisted buffer): + new + + AssertEqual + \ { + \ 'command': ale#Escape('/path/to/xmllint') + \ . ' --format %t' + \ }, + \ ale#fixers#xmllint#Fix(bufnr('')) + Execute(The xmllint callback should return the correct default command): AssertEqual \ { -- cgit v1.2.3