Add support for `ptop` fixer (#3652)

* Add support for `ptop` fixer

* add test file for ptop tests

* called wrong fixer in assertion test

* use ' %s %t' instead of ' %t %t'
This commit is contained in:
BarrOff 2021-03-23 12:51:14 +00:00 committed by GitHub
parent c6b61950f8
commit cdac7a830e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 90 additions and 0 deletions

View File

@ -430,6 +430,11 @@ let s:default_registry = {
\ 'function': 'ale#fixers#ormolu#Fix',
\ 'suggested_filetypes': ['haskell'],
\ 'description': 'A formatter for Haskell source code.',
\ },
\ 'ptop': {
\ 'function': 'ale#fixers#ptop#Fix',
\ 'suggested_filetypes': ['pascal'],
\ 'description': 'Fix Pascal files with ptop.',
\ }
\}

View File

@ -0,0 +1,17 @@
" Author: BarrOff https://github.com/BarrOff
" Description: Integration of ptop with ALE.
call ale#Set('pascal_ptop_executable', 'ptop')
call ale#Set('pascal_ptop_options', '')
function! ale#fixers#ptop#Fix(buffer) abort
let l:executable = ale#Var(a:buffer, 'pascal_ptop_executable')
let l:options = ale#Var(a:buffer, 'pascal_ptop_options')
return {
\ 'command': ale#Escape(l:executable)
\ . (empty(l:options) ? '' : ' ' . l:options)
\ . ' %s %t',
\ 'read_temporary_file': 1,
\}
endfunction

24
doc/ale-pascal.txt Normal file
View File

@ -0,0 +1,24 @@
===============================================================================
ALE Pascal Integration *ale-pascal-options*
===============================================================================
ptop *ale-pascal-ptop*
g:ale_pascal_ptop_executable *g:ale_pascal_ptop_executable*
*b:ale_pascal_ptop_executable*
Type: |String|
Default: `'ptop'`
This variable can be changed to specify the ptop executable.
g:ale_pascal_ptop_options *g:ale_pascal_ptop_options*
*b:ale_pascal_ptop_options*
Type: |String|
Default: `''`
This variable can be set to pass additional options to the ptop fixer.
===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:

View File

@ -344,6 +344,8 @@ Notes:
* `ibm_validator`
* `prettier`
* `yamllint`
* Pascal
* `ptop`
* Pawn
* `uncrustify`
* Perl

View File

@ -2881,6 +2881,8 @@ documented in additional help files.
ibm_validator.........................|ale-openapi-ibm-validator|
prettier..............................|ale-openapi-prettier|
yamllint..............................|ale-openapi-yamllint|
pascal..................................|ale-pascal-options|
ptop..................................|ale-pascal-ptop|
pawn....................................|ale-pawn-options|
uncrustify............................|ale-pawn-uncrustify|
perl....................................|ale-perl-options|

View File

@ -353,6 +353,8 @@ formatting.
* [ibm_validator](https://github.com/IBM/openapi-validator)
* [prettier](https://github.com/prettier/prettier)
* [yamllint](https://yamllint.readthedocs.io/)
* Pascal
* [ptop](https://www.freepascal.org/tools/ptop.var)
* Pawn
* [uncrustify](https://github.com/uncrustify/uncrustify)
* Perl

View File

@ -0,0 +1,38 @@
Before:
Save g:ale_pascal_ptop_executable
Save g:ale_pascal_ptop_options
" Use an invalid global executable, so we don't match it.
let g:ale_pascal_ptop_executable = 'xxxinvalid'
let g:ale_pascal_ptop_options = ''
call ale#test#SetDirectory('/testplugin/test/fixers')
After:
Restore
call ale#test#RestoreDirectory()
Execute(The ptop callback should return the correct default values):
call ale#test#SetFilename('../test-files/pascal/test.pas')
AssertEqual
\ {
\ 'read_temporary_file': 1,
\ 'command': ale#Escape('xxxinvalid')
\ . ' %s %t',
\ },
\ ale#fixers#ptop#Fix(bufnr(''))
Execute(The ptop callback should include custom ptop options):
let g:ale_pascal_ptop_options = "-i 2"
call ale#test#SetFilename('../test-files/pascal/test.pas')
AssertEqual
\ {
\ 'read_temporary_file': 1,
\ 'command': ale#Escape('xxxinvalid')
\ . ' ' . g:ale_pascal_ptop_options
\ . ' %s %t',
\ },
\ ale#fixers#ptop#Fix(bufnr(''))

View File