This is news.info, produced by makeinfo version 6.5 from news.texi. Changes and New Features in 19.04 (unreleased): * ESS[R]: There is a new menu entry for reloading the R process. It is otherwise bound to 'C-c C-e C-r'. Reloading now reuses the same process name and start arguments that were used to start the process. * iESS: Process runners now return the inferior buffer. Note that callers of inferior runners should not assume that the current buffer has been set to the inferior buffer. Instead, use 'with-current-buffer' with the return value of the inferior. * iESS[SAS]: The SAS keymap was only set in iESS buffers called '*SAS*'. This is now fixed. * ESS[R]: Fixed longstanding indentation issues involving '::' and ':::' operators. * Implement a more reliable check for the process busy state. Background actions such as completion and directory synchronization should not block the process and should not cause printing of the extraneous output to the interpreter. * Activate 'goto-address-mode' for url and email highlighting in inferior buffers. * 'smart-underscore' and 'ess-smart-S-assign-key' have been removed. Users who liked the previous behavior (i.e. underscore inserting "<-") should bind 'ess-insert-assign' to the underscore in their Emacs initialization file. For example, '(define-key ess-r-mode-map "_" #'ess-insert-assign)' and '(define-key inferior-ess-r-mode-map "_" #'ess-insert-assign)' will activate it in all ESS R buffers. * ESS major modes are now defined using 'define-derived-mode'. This makes ESS major modes respect modern conventions such as having -mode-hook and -mode-map. Users are encouraged to place customizations under the appropriate mode. * New option ess-auto-width controls setting the width option on window changes. Users can change it to 'frame, 'window, or an integer. See the documentation for details. 'ess-auto-width-visible' controls visibility. * ESS now respects 'display-buffer-alist'. Users can now use 'display-buffer-alist' to manage how and where windows appear. See *Note (ess)Controlling buffer display:: for more information and examples. * 'ess-roxy-mode' can now be enabled in non-R buffers. This is primarily intended to support roxygen documentation for cpp buffers. Preview functionality is not supported outside R buffers. * ESS[R]: DESCRIPTION files now open in 'conf-colon-mode'. * 'ess-style' now has effects when set as a file or directory local variable. * 'ess-default-style' is now obsolete, use 'ess-style' instead. * Options for 'ess-gen-proc-buffer-name-function' have been renamed. ess-gen-proc-buffer-name:projectile-or-simple was renamed to ess-gen-proc-buffer-name:project-or-simple and ess-gen-proc-buffer-name:projectile-or-directory was renamed to ess-gen-proc-buffer-name:project-or-directory. As the name suggests, these now rely on project.el (included with Emacs) rather than projectile.el, which is a third-party package. * ESS[R]: devtools commands ask about saving modified buffers before running. Users can disable the questioning with 'ess-save-silently'. * ESS[R] help pages now provide links to other help topics. This is similar with what you would see with, for example 'options(help_type = ``html'')' but works with the plain-text version as well. This only works with 'options(useFancyQuotes = TRUE)' (the default). * 'ess-rdired' buffers now derive from tabulated-list-mode. They should look better and be a bit faster overall. The size column now displays object sizes in bytes. * 'ess-rdired' buffers now auto-update. The frequency is governed by the new option 'ess-rdired-auto-update-interval'. * ESS[R]: 'electric-layout-mode' is now supported. This automatically inserts a newline after an opening curly brace in R buffers. To enable it, customize 'ess-r-mode-hook'. * ESS[R]: imenu now supports assignment with the equals sign. * ESS[Rd]: Rd no longer writes abbrevs to user's abbrev file. * ESS removed support for many unused languages. This includes old versions of S+, ARC, OMG, VST, and XLS. The following have been made obsolete or removed, see their documentation for more detail: * Libraries for literate data analysis are obsolete and not loaded by default. This includes 'ess-noweb', 'ess-swv', and related functionality like 'Rnw-mode'. Users are encouraged to switch to one of several other packages that deal with these modes. For example, polymode , , or markdown-mode with edit-indirect . * Support for 'auto-complete' is obsolete. The 'auto-complete' package is unmaintained and so ESS support is now obsolete. Users are encouraged to switch to 'company-mode' instead. * User options for controlling display of buffers. This includes 'ess-show-buffer-action', 'inferior-ess-same-window', 'inferior-ess-own-frame', and 'inferior-ess-frame-alist'. See above about ESS respecting 'display-buffer-alist'. * Variables 'ess-tab-always-indent' and 'ess-tab-complete-in-script'. Use the Emacs-wide setting of 'tab-always-indent' instead. * 'inferior-ess-*-start-file' variables. All modes except Stata did not respect customization of this variable. In order to load a file on startup, you should put a function on 'ess-*-post-run-hook'. Bug Fixes in 18.10.3: * More 'Makefile' fixes, notably installing '*.el's. Bug Fixes in 18.10.2: * ESS[R] Fix namespace evaluation in non-installed packages. Evaluation is directed into GlobalEnv as originally intended. * 'Makefile' fixes, notably for 'make install' and including full docs in the tarballs. Bug Fixes in 18.10-1: * New functions 'ess-eval-line-visibly-and-step' ('C-c C-n' and 'ess-eval-region-or-line-visibly-and-step' ('C-RET') which behave as the old versions of 'ess-eval-line-and-step' and 'ess-eval-region-or-line-and-step'. Changes and New Features in 18.10: * This is the last release to support Emacs older than 25.1. Going forward, only GNU Emacs 25.1 and newer will be supported. Soon after this release, support for older Emacs versions will be dropped from the git master branch. Note that MELPA uses the git master branch to produce ESS snapshots, so if you are using Emacs < 25.1 from MELPA and are unable to upgrade, you should switch to MELPA-stable. * ESS now displays the language dialect in the mode-line. So, for example, R buffers will now show ESS[R] rather than ESS[S]. * The ESS manual has been updated and revised. * The ESS initialization process has been further streamlined. If you update the autoloads (which installation from 'package-install' does), you should not need to '(require 'ess-site)' at all, as autoloads should automatically load ESS when it is needed (e.g. the first time an R buffer is opened). In order to defer loading your ESS config, you may want to do something like '(with-require-after-load "ess" )' in your Emacs init file. Users of the popular 'use-package' Emacs package can now do '(use-package ess :defer t)' to take advantage of this behavior. *Note (ess)Activating and Loading ESS:: for more information on this feature. * ESS now respects Emacs conventions for keybindings. This means that The 'C-c [letter]' bindings have been removed. This affects 'C-c h', which was bound to 'ess-eval-line-and-step-invisibly' in 'sas-mode-local-map'; 'C-c f', which was bound to 'ess-insert-function-outline' in 'ess-add-MM-keys'; and 'C-c h', which was bound to 'ess-handy-commands' in 'Rd-mode-map', 'ess-noweb-minor-mode-map', and 'ess-help-mode-map' * Functions 'ess-eval-line-and-step' and 'ess-eval-region-or-line-and-step' now behave consistently with other evaluation function inside a package. * ESS[R]: 'ess-r-package-use-dir' now works with any mode. This sets the working directory to the root of the current package including for example C or C++ files within '/src'). * ESS[R]: Long + + prompts in the inferior no longer offset output. * ESS[R]: New option 'strip' for 'inferior-ess-replace-long+'. This strips the entire + + sequence. * ESS modes now inherit from 'prog-mode'. In the next release, ESS modes will use 'define-derived-mode' so that each mode will have (for example) its own hooks and keymaps. * ESS[R]: Supports flymake in R buffers for Emacs 26 and newer. Users need to install the 'lintr' package to use it. Customizable options include 'ess-use-flymake', 'ess-r-flymake-linters', and 'ess-r-flymake-lintr-cache'. * ESS[R]: Gained support for xref in Emacs 25+. *Note (emacs)Xref:: * ESS[R]: The startup screen is cleaner. It also displays the startup directory with an explicit 'setwd()'. * ESS[R]: Changing the working directory is now always reflected in the process buffer. * ESS[R]: 'Makevars' files open with 'makefile-mode'. * New variable 'ess-write-to-dribble'. This allows users to disable the dribble ('*ESS*') buffer if they wish. * All of the '*-program-name' variables have been renamed to '*-program'. Users who previously customized e.g. 'inferior-ess-R-program-name' will need to update their customization to 'inferior-ess-R-program'. These variables are treated as risky variables. * 'ess-smart-S-assign' was renamed to 'ess-insert-assign'. It provides similar functionality but for any keybinding, not just '_'. For instance if you bind it to ';', repeated invocations cycle through between assignment and inserting ';'. * 'C-c C-=' is now bound to 'ess-cycle-assign' by default. See the documentation for details. New user customization option 'ess-assign-list' controls which assignment operators are cycled. * ESS[R] In remote sessions, the ESSR package is now fetched from GitHub. * Commands that send the region to the inferior process now deal with rectangular regions. See the documentation of 'ess-eval-region' for details. This only works on Emacs 25.1 and newer. * ESS[R]: Improvements to interacting with iESS in non-R files. Interaction with inferior process in non-R files within packages (for instance C or C++ files) has been improved. This is a work in progress. * ESS[R]: Changing the working directory is now always reflected in the process buffer. * ESS[JAGS]: *.jog and *.jmd files no longer automatically open in JAGS mode. Many improvements to fontification: * Improved customization for faces. ESS now provides custom faces for (nearly) all faces used and places face customization options into their own group. Users can customize these options using 'M-x customize-group RET ess-faces'. * Many new keywords were added to 'ess-R-keywords' and 'ess-R-modifiers'. See the documentation for details. * ESS[R]: 'in' is now only fontified when inside a 'for' construct. This avoids spurious fontification, especially in the output buffer where 'in' is a common English word. * ESS: Font-lock keywords are now generated lazily. That means you can now add or remove keywords from variables like 'ess-R-keywords' in your Emacs configuration file after loading ESS (i.e. in the ':config' section for 'use-package' users). * ESS[R]: Fontification of roxygen '@param' keywords now supports comma-separated parameters. * ESS[R]: Certain keywords are only fontified if followed by a parenthesis. Function-like keywords such as 'if ()' or 'stop()' are no longer fontified as keyword if not followed by an opening parenthesis. The same holds for search path modifiers like 'library()' or 'require()'. * ESS[R]: Fixed fontification toggling. Especially certain syntactic elements such as '%op%' operators and backquoted function definitions. * ESS[R]: 'ess-font-lock-toggle-keyword' can be called interactively. This command asks with completion for a font-lock group to toggle. This functionality is equivalent to the font-lock menu. Notable bug fixes: * 'prettify-symbols-mode' no longer breaks indentation. This is accomplished by having the pretty symbols occupy the same number of characters as their non-pretty cousins. You may customize the new variable 'ess-r-prettify-symbols' to control this behavior. * ESS: Inferior process buffers are now always displayed on startup. Additionally, they don't hang Emacs on failures. Obsolete libraries, functions, and variables: * The 'ess-r-args.el' library has been obsoleted and will be removed in the next release. Use 'eldoc-mode' instead, which is on by default. * Functions and options dealing with the smart assign key are obsolete. The following functions have been made obsolete and will be removed in the next release of ESS: 'ess-smart-S-assign', 'ess-toggle-S-assign', 'ess-toggle-S-assign-key', 'ess-disable-smart-S-assign'. The variable 'ess-smart-S-assign-key' is now deprecated and will be removed in the next release. If you would like to continue using '_' for inserting assign in future releases, please bind 'ess-insert-assign' in 'ess-mode-map' the normal way. * ESS[S]: Variable 'ess-s-versions-list' is obsolete and ignored. Use 'ess-s-versions' instead. You may pass arguments by starting the inferior process with the universal argument. Changes and New Features in 17.11: * The ESS initialization process has been streamlined. You can now load the R and Stata modes independently from the rest of ESS. Just put '(require 'ess-r-mode)' or '(require 'ess-stata-mode)' in your init file. This is for experienced Emacs users as this requires setting up autoloads for '.R' files manually. We will keep maintaining 'ess-site' for easy loading of all ESS features. * Reloading and quitting the process is now more robust. If no process is attached, ESS now switches automatically to one (prompting you for selection if there are several running). Reloading and quitting will now work during a debug session or when R is prompting for input (for instance after a crash). Finally, the window configuration is saved and restored after reloading to prevent the buffer of the new process from capturing the cursor. * ESS[R]: New command 'ess-r-package-use-dir'. It sets the working directory of the current process to the current package directory. * ESS[R] Lookup for references in inferior buffers has been improved. New variable 'ess-r-package-source-roots' contains package sub-directories which are searched recursively during the file lookup point. Directories in 'ess-tracebug-search-path' are now also searched recursively. * ESS[R] Namespaced evaluation is now automatically enabled only in the 'R/' directory. This way ESS will not attempt to update function definitions from a package if you are working from e.g. a test file. Changes and New Features in 16.10: * ESS[R]: Syntax highlighting is now more consistent. Backquoted names are not fontified as strings (since they really are identifiers). Furthermore they are now correctly recognized when they are function definitions or function calls. * ESS[R]: Backquoted names and '%op%' operators are recognized as sexp. This is useful for code navigation, e.g. with 'C-M-f' and 'C-M-b'. * ESS[R]: Integration of outline mode with roxygen examples fields. You can use outline mode's code folding commands to fold the examples field. This is especially nice to use with well documented packages with long examples set. Set 'ess-roxy-fold-examples' to non-nil to automatically fold the examples field when you open a buffer. * ESS[R]: New experimental feature: syntax highlighting in roxygen examples fields. This is turned off by default. Set 'ess-roxy-fontify-examples' to non-nil to try it out. * ESS[R]: New package development command 'ess-r-devtools-ask' bound to 'C-c C-w C-a'. It asks with completion for any devtools command that takes 'pkg' as argument. * ESS[R]: New command 'C-c C-e C-r' to reload the inferior process. Currently only implemented for R. The R method runs 'inferior-ess-r-reload-hook' on reloading. * ESS[R]: 'ess-r-package-mode' is now activated in non-file buffers as well. Bug fixes in 16.10: * ESS[R]: Fix broken (un)flagging for debugging inside packages * ESS[R]: Fixes (and improvements) in Package development * ESS[R]: Completion no longer produces '...=' inside 'list( )'. * ESS[R]: Better debugging and tracing in packages. * ESS[R]: Better detection of symbols at point. * ESS[R]: No more spurious warnings on deletion of temporary files. * ESS[julia]: help and completion work (better) * ESS[julia]: available via 'ess-remote' Changes and New Features in 16.04: * ESS[R]: 'developer' functionality has been refactored. The new user interface consists of a single command 'ess-r-set-evaluation-env' bound by default to 'C-c C-t C-s'. Once an evaluation environment has been set with, all subsequent ESS evaluation will source the code into that environment. By default, for file within R packages the evaluation environment is set to the package environment. Set 'ess-r-package-auto-set-evaluation-env' to 'nil' to disable this. * ESS[R]: New 'ess-r-package-mode' This development mode provides features to make package development easier. Currently, most of the commands are based on the 'devtools' packages and are accessible with 'C-c C-w' prefix. See the documentation of 'ess-r-package-mode' function for all available commands. With 'C-u' prefix each command asks for extra arguments to the underlying devtools function. This mode is automatically enabled in all files within R packages and is indicated with '[pkg:NAME]' in the mode-line. * ESS[R]: Help lookup has been improved. It is now possible to get help for namespaced objects such as pkg::foobar. Furthermore, ESS recognizes more reliably when you change 'options('html_type')'. * ESS[R]: New specialized breakpoints for debugging magrittr pipes * ESS: ESS now implements a simple message passing interface to communicate between ESS and inferior process. Bug fixes in 16.04: * ESS[R]: Roxygen blocks with backtics are now correctly filled * ESS[R]: Don't skip breakpoints in magrittr's 'debug_pipe' * ESS[R]: Error highlighting now understands 'testthat' type errors * ESS[Julia]: Added getwd and setwd generic commands  Tag Table:  End Tag Table