Editor setup

Note: This vignette is best viewed online, where we can render full animations of editor flows.

RStudio

lintr lints are automatically displayed in the RStudio Markers pane (RStudio versions > v0.99.206).

RStudio Example
RStudio Example

In order to show the “Markers” pane in RStudio: Menu “Tools” -> “Global Options…”, a window with title “Options” will pop up. In that window: click “Code” on the left; click “Diagnostics” tab; check “Show diagnostics for R”.

To lint a source file test.R type in the Console lintr::lint("test.R") and look at the result in the “Markers” pane.

This package also includes two addins for linting the current source and package. To bind the addin to a keyboard shortcut navigate to Tools > addins > Browse Addins > Keyboard Shortcuts. It’s recommended to use Alt+Shift+L for linting the current source lint and Ctrl+Shift+Alt+L to code the package. These are easy to remember as you are Alt+Shift+L(int) ;)

Emacs

lintr has built-in integration with flycheck versions greater than 0.23. Emacs Example

Installation

lintr is fully integrated into flycheck when using ESS. See the installation documentation for those packages for more information.

Configuration

You can also configure what linters are used. e.g. using a different line length cutoff. - M-x customize-option -> flycheck-lintr-linters -> linters_with_defaults(line_length_linter(120))

Vim - syntastic

lintr can be integrated with syntastic for on-the-fly linting.

Vim Example
Vim Example

Installation

Put the file syntastic/lintr.vim in syntastic/syntax_checkers/r. If you are using pathogen this directory is ~/.vim/bundles/syntastic/syntax_checkers/r.

You will also need to add the following lines to your .vimrc.

let g:syntastic_enable_r_lintr_checker = 1
let g:syntastic_r_checkers = ['lintr']

Configuration

You can also configure what linters are used. e.g. using a different line length cutoff.

let g:syntastic_r_lintr_linters = "linters_with_defaults(line_length_linter(120))"

Vim - ALE

lintr can be integrated with ALE for on the fly linting.

Installation

lintr is integrated with ALE and requires no additional installation.

Configuration

You can configure what linters are used, e.g. using a different line length cutoff.

let g:ale_r_lintr_options = "linters_with_defaults(line_length_linter(120))"

You can also configure whether lint or lint_package is used. Set to 1 for lint_package and 0 (default) for lint.

let g:ale_r_lintr_lint_package = 1

See :h ale_r_lintr for more information.

Note that configuration through .lintr files are not supported.

There is a work around that can be used to read the contents of a .lintr file in the root of the working directory. This would allow the use of configuration through .lintr files.

if filereadable(".lintr")
  let g:ale_r_lintr_options = join(readfile('.lintr'))
endif

Sublime Text 3

lintr can be integrated with Sublime Linter for on-the-fly linting.

Sublime Example
Sublime Example

Installation

Simply install sublimeLinter-contrib-lintr using Package Control.

For more information see Sublime Linter Docs

Configuration

You can also configure what linters are used. e.g. disabling the assignment linter and using a different line length cutoff. In the SublimeLinter User Settings

    {
      "linters": {
        "lintr": {
          "linters": "linters_with_defaults(assignment_linter = NULL, line_length_linter(120))"
        }
      }
    }

Atom

lintr can be integrated with Linter for on the fly linting.

Atom Example
Atom Example

Installation

Simply install linter-lintr from within Atom or on the command line with:

apm install linter-lintr

For more information and bug reports see Atom linter-lintr.

Visual Studio Code

In Visual Studio Code, vscode-R presents the lintr diagnostics from languageserver.

VS Code Example
VS Code Example

Installation

Installing languageserver package in R and vscode-R extension in VS Code will enable lintr in VS Code by default or run the following command lines:

Rscript -e 'install.packages("languageserver")'
code --install-extension reditorsupport.r