The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
" Run tidyall on the current buffer. If an error occurs, show it and leave it
" in tidyall.ERR, and undo any changes.

command! TidyAll :call TidyAll()
function! TidyAll()
    let cur_pos = getpos( '.' )
    let cmdline = ':1,$!tidyall --mode editor --pipe %:p 2> tidyall.ERR'
    execute( cmdline )
    if v:shell_error
        echo "\nContents of tidyall.ERR:\n\n" . system( 'cat tidyall.ERR' )
        silent undo
    else
        call system( 'rm tidyall.ERR' )
    endif
    call setpos( '.', cur_pos )
endfunction

" Uncomment to set leader to ,
" let mapleader = ','

" Bind to ,t (or leader+t)
map <leader>t :TidyAll<cr>