Skip to content
Permalink
Browse files

Add a fixer for r based on the styler package (#2401)

* Add styler as a new fixer for R files
* Add to the list of supported tools
* Add documentation
  • Loading branch information...
tvatter authored and w0rp committed Apr 23, 2019
1 parent 893ac34 commit ce0b14979ea7429f07b6ca496333f72d93a8d013
@@ -285,6 +285,11 @@ let s:default_registry = {
\ 'suggested_filetypes': ['kt'],
\ 'description': 'Fix Kotlin files with ktlint.',
\ },
\ 'styler': {
\ 'function': 'ale#fixers#styler#Fix',
\ 'suggested_filetypes': ['r'],
\ 'description': 'Fix R files with styler.',
\ },
\ 'latexindent': {
\ 'function': 'ale#fixers#latexindent#Fix',
\ 'suggested_filetypes': ['tex'],
@@ -0,0 +1,16 @@
" Author: tvatter <thibault.vatter@gmail.com>
" Description: Fixing R files with styler.

call ale#Set('r_styler_executable', 'Rscript')
call ale#Set('r_styler_options', 'tidyverse_style')

function! ale#fixers#styler#Fix(buffer) abort
return {
\ 'command': 'Rscript --vanilla -e '
\ . '"suppressPackageStartupMessages(library(styler));'
\ . 'style_file(commandArgs(TRUE), style = '
\ . ale#Var(a:buffer, 'r_styler_options') . ')"'
\ . ' %t',
\ 'read_temporary_file': 1,
\}
endfunction
@@ -25,5 +25,21 @@ g:ale_r_lintr_lint_package *g:ale_r_lintr_lint_package*
of `lintr::lint`. This prevents erroneous namespace warnings when linting
package files.


===============================================================================
styler *ale-r-styler*

g:ale_r_styler_options *g:ale_r_styler_options*
*b:ale_r_styler_options*
Type: |String|
Default: `'styler::tidyverse_style'`

This option can be configured to change the options for styler.

The value of this option will be used as the `style` argument for the
`styler::style_file` options. Consult the styler documentation
for more information.


===============================================================================
vim:tw=78:ts=2:sts=2:sw=2:ft=help:norl:
@@ -357,6 +357,7 @@ Notes:
* `qmllint`
* R
* `lintr`
* `styler`
* Racket
* `raco`
* ReasonML
@@ -2149,6 +2149,7 @@ documented in additional help files.
qmlfmt................................|ale-qml-qmlfmt|
r.......................................|ale-r-options|
lintr.................................|ale-r-lintr|
styler................................|ale-r-styler|
reasonml................................|ale-reasonml-options|
merlin................................|ale-reasonml-merlin|
ols...................................|ale-reasonml-ols|
@@ -366,6 +366,7 @@ formatting.
* [qmllint](https://github.com/qt/qtdeclarative/tree/5.11/tools/qmllint)
* R
* [lintr](https://github.com/jimhester/lintr)
* [styler](https://github.com/r-lib/styler)
* Racket
* [raco](https://docs.racket-lang.org/raco/)
* ReasonML
@@ -0,0 +1,21 @@
Before:
call ale#test#SetDirectory('/testplugin/test/fixers')

After:
Restore

call ale#test#RestoreDirectory()

Execute(The styler callback should include custom styler options):
let g:ale_r_styler_options = "a_custom_option"

AssertEqual
\ {
\ 'command': 'Rscript --vanilla -e '
\ . '"suppressPackageStartupMessages(library(styler));'
\ . 'style_file(commandArgs(TRUE), style = '
\ . 'a_custom_option)"'
\ . ' %t',
\ 'read_temporary_file': 1,
\ },
\ ale#fixers#styler#Fix(bufnr(''))

0 comments on commit ce0b149

Please sign in to comment.
You can’t perform that action at this time.