This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+lang/ess
Ivan Yonchovski c3f13d0391 Removed company-lsp in favour of company-capf
- Also removed some cquery artifacts which accidentally ended up in this PR
instead of in https://github.com/syl20bnr/spacemacs/pull/13446
2020-04-04 08:24:44 +02:00
..
img
config.el Add LSP backend support for R 2020-02-08 08:02:46 +00:00
funcs.el Add LSP backend support for R 2020-02-08 08:02:46 +00:00
layers.el Add LSP backend support for R 2020-02-08 08:02:46 +00:00
packages.el Removed company-lsp in favour of company-capf 2020-04-04 08:24:44 +02:00
README.org Add LSP backend support for R 2020-02-08 08:02:46 +00:00

ESS (R) layer

/TakeV/spacemacs/media/commit/bf1ef03bdac72fbd97ac22827a496671d1d75af1/layers/+lang/ess/img/r.jpg

Description

This layer adds support for statistical programming languages to Spacemacs.

Features:

  • Syntax highlighting
  • Auto-completion
  • Syntax-checking via lintr
  • Additional data viewer for R via ess-R-data-view
  • Support for Org-Babel
  • Showing of inline help for R constructs
  • Repl support via R terminal
  • Support for S, SAS and R
  • Much more via the ESS Project

Install

Layer

To use this configuration layer, add it to your ~/.spacemacs. You will need to add ess to the existing dotspacemacs-configuration-layers list in this file.

Linting

Install lintr library via the R terminal to enable syntax checking. To do so start the R terminal and type below code.

  install.packages("lintr")

LSP

This backend uses an external server to provide the various IDE integrations and a more modern UI integration in spacemacs.

It requires installing the external server via:

  install.packages('languageserver')

Enable the lsp layer to activate this backend as well as setting the layer variable ess-r-backend:

  (ess :variables ess-r-backend 'lsp)

Options

Use a key binding to insert <-:

  (setq-default dotspacemacs-configuration-layers '((ess :variables
                                                         ess-assign-key "\M--")))

Key bindings

Inferior REPL process

Send code to inferior process with these commands:

Key binding Description
SPC m ' start REPL
SPC m , send region, current function, or paragraph and step
SPC m s i start REPL
SPC m s s switch between file and REPL
SPC m s S switch the process associate with file
SPC m s b send buffer and keep code buffer focused
SPC m s B send buffer and switch to REPL in insert mode
SPC m s d send region or line and step
SPC m s D send function or paragraph and step
SPC m s f send function and keep code buffer focused
SPC m s F send function and focus REPL
SPC m s l send line and keep code buffer focused
SPC m s L send line and focus REPL
SPC m s r send region and keep code buffer focused
SPC m s R send region and focus REPL

Help

Get help and helpers for inspecting objects at point are available in R buffers only.

Key binding Description
SPC m h a help apropos
SPC m h d display help on object
SPC m h e describe object
SPC m h h display help on object
SPC m h i display index for package
SPC m h m manual lookup
SPC m h o display demos
SPC m h p view data under point using [ess-R-data-view][ess-R-data-view]
SPC m h r lookup reference
SPC m h t view table using [ess-R-data-view][ess-R-data-view]
SPC m h v display vignettes
SPC m h w help web search
C-j next item in REPL history
C-k previous item in REPL history

More interaction with the REPL

Helpers that provide further interaction with the REPL.

Key binding Description
SPC m E / set working directory
SPC m E TAB install package
SPC m E d edit object source or dump() object into a new buffer
SPC m E e execute a command in the ESS process
SPC m E i install package
SPC m E l load installed package
SPC m E r reload ESS process
SPC m E s set source style
SPC m E t build tags for directory
SPC m E w set "width" option

R devtools

Interaction with the R devtools package.

Key binding Description
SPC m D TAB interface for devtools::install()
SPC m D a ask for a devtools command and runs it
SPC m D c interface for devtools::check()
SPC m D d interface for devtools::document()
SPC m D i interface for devtools::install()
SPC m D l interface for devtools::load_all()
SPC m D r interface for devtools::revdep_check()
SPC m D s set a package for ESS r-package commands
SPC m D t interface for devtools::tests()
SPC m D u interface for devtools::unload()

Debugging

Tools for debugging

Key binding Description
SPC m d ? ess-tracebug-show-help
SPC m d ` show traceback and last error message
SPC m d \~ display call current call stack
SPC m d b set breakpoint
SPC m d B set conditional breakpoint
SPC m d d set debugging flag for function
SPC m d e toggle the on-error action
SPC m d i jump to point where the last debugger or traceback event occurred
SPC m d k kill breakpoint
SPC m d K kill all breakpoints in buffer
SPC m d l Set breakpoint logger
SPC m d n go to next breakpoint
SPC m d N go to previous breakpoint
SPC m d p go to previous breakpoint
SPC m d o toggle breakpoint state
SPC m d s set environment for evaluation
SPC m d t toggle tracebug
SPC m d u unflag function for debug
SPC m d w trigger ESS watch mode