summaryrefslogtreecommitdiff
path: root/lisp/ess-mode.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2022-11-01 10:47:17 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2022-11-01 10:47:17 -0400
commitfbc2ef3606243c4f86021af8c097470a98847969 (patch)
tree5e09863605ccb0844444189494e0c83a474661d1 /lisp/ess-mode.el
parent60e9790b35fdac1b254b66438fedaeebb8a82c91 (diff)
Fix compilation of package installed from Git; plus cosmeticsscratch/ess
In `test/*.el`: Provide "test/etest/etest" to `require` so Emacs can find the file when the package is compiled. In `*.el`: Prefer #' to quote named functions. Use `lexical-binding` in all the remaining files. Use lexical-binding also in `eval`. Remove redundant let-bindings of obsolete variable `inhibit-point-motion-hooks`. Replace uses of `point-at-bol` and `point-at-eol`, both marked obsolete in Emacs-29. Use `defalias` rather than `fset` to define a function. Fix occasional incorrect uses of ' in docstrings. Remove some redundant `:group` arguments. Add leading `_` to unused args. In addition to the above, a few, more specifc, tweaks: * lisp/ess-r-mode.el (ess-offset, ess-offset-type): Strength-reduce `eval` to `symbol-value`. (ess-rutils-rsitesearch): Hoist the common `browse-url` out of the `if`. * lisp/ess-r-package.el: Don't test `fboundp` before `advice-add` since we require Emacs≄25. Don't require `shell` since `advice-add` also works when the function is not yet defined. * lisp/ess-r-syntax.el (ess-parser--backward): Give it a global nil value, both to declare it as dynamically scoped and to simplify the code. All users adjusted not to bother with `bound-and-true-p`. (ess-node): Hoist common `gethash` out of the `if`. * lisp/ess-sas-a.el (ess-sas-rtf-portrait, ess-sas-rtf-landscape): Add FIXME. * lisp/ess-sas-d.el (ess-electric-run-semicolon): Re-indent. Add FIXME. * lisp/ess-sas-l.el (beginning-of-sas-statement): Rename statically scoped arg to avoid conflict with dynamically scoped var. (sas-prev-line): Make (unused) arg optional. (ess-imenu-SAS): Use [:alpha:] and [:alnum:]. * lisp/ess-tracebug.el (ess--tb-start, ess--tb-stop): Use `advice-add/remove` to redefine `ess-parse-errors`. * lisp/ess.el (ess-version-string): Don't presume `point-min` is `1`. * lisp/obsolete/ess-mouse.el (ess-mouse-me-eval-expanded): Remove unused var `page-scommand`. * lisp/obsolete/mouseme.el (mouse-me-get-string, mouse-me-find-grep): Remove unnused vars `p`, `beg`, and `end`. * test/ess-test-inf.el (ess-test-inferior-local-start-args): Use `*proc*` rather than undocumented `*inf-buf*`. (ess-inf-send-fn-test, ess-inf-send-cat-some.text-test): Remove unused var `output-nowait`. * test/ess-test-literate.el (chunk-end): Remove `defvar`. (elt-process-next-chunk, elt-process-next-subchunk, elt-process-case) (elt-process-code): Pass/take `chunk-end` as argument instead. * test/ess-test-org.el (test-org-R-ouput): Remove unused var `inf-proc`. * test/ess-test-r-utils.el (with-ess-test-file): Add FIXME. (ess-test-sleep-while, ess-test-unwind-protect): Move before first use. Split the bulk of the code into a function, to ease debugging, avoid name captures, and improve error messages. (with-r-running): Split the bulk of the code into a function. Document the `*proc*` var. Add FIXME. (output, face-at, token=): Add FIXME. (output=): Remove redundant `eval`. * test/ess-test-r.el (ess-r-inherits-prog-mode-test): Turn global `ess-test-prog-hook` var into local `pmh-was-run`. * test/literate/fontification.el (face-at-point): Remove unused function. * test/literate/roxy.el (face-at-point, faces-at-point): Remove unused functions.
Diffstat (limited to 'lisp/ess-mode.el')
-rw-r--r--lisp/ess-mode.el17
1 files changed, 10 insertions, 7 deletions
diff --git a/lisp/ess-mode.el b/lisp/ess-mode.el
index 91ebaf5..d580aeb 100644
--- a/lisp/ess-mode.el
+++ b/lisp/ess-mode.el
@@ -1,6 +1,6 @@
;;; ess-mode.el -- Emacs Speaks Statistics root mode. -*- lexical-binding: t; -*-
-;; Copyright (C) 1994-2020 Free Software Foundation, Inc.
+;; Copyright (C) 1994-2022 Free Software Foundation, Inc.
;; Maintainer: ESS-core <ESS-core@r-project.org>
;; This file is part of GNU Emacs.
@@ -103,8 +103,8 @@
;; 27 binds M-j to `default-indent-new-line' which calls
;; `comment-line-break-function' if point is in a comment. We set this
;; function in the mode init.
-(substitute-key-definition 'indent-new-comment-line
- 'ess-indent-new-comment-line
+(substitute-key-definition #'indent-new-comment-line
+ #'ess-indent-new-comment-line
ess-mode-map global-map)
(defvar ess-extra-map
@@ -309,7 +309,7 @@ indentation style. See `ess-style-alist' for predefined styles."
(:eval (ess--get-mode-line-indicator))
ess--local-mode-line-process-indicator
"]"))
- (add-hook 'ess-idle-timer-functions 'ess-synchronize-dirs nil 'local))
+ (add-hook 'ess-idle-timer-functions #'ess-synchronize-dirs nil 'local))
(defun ess--get-mode-line-indicator ()
"Get `ess--mode-line-process-indicator' from process buffer.
@@ -319,7 +319,8 @@ Internal function to be used for dynamic mode-line display in
(let* ((proc (get-process ess-local-process-name))
(buff (when proc (process-buffer proc))))
(if (and proc (buffer-live-p buff))
- (with-current-buffer buff (mapcar 'eval ess--mode-line-process-indicator))
+ (with-current-buffer buff
+ (mapcar (lambda (e) (eval e t)) ess--mode-line-process-indicator))
"none"))
"none"))
@@ -392,7 +393,8 @@ Otherwise go to the end of paragraph."
(ess-goto-end-of-function-or-para)
(exchange-point-and-mark))
-(define-obsolete-function-alias 'ess-mark-function 'ess-mark-function-or-para "15.09")
+(define-obsolete-function-alias 'ess-mark-function
+ #'ess-mark-function-or-para "15.09")
(defun ess-narrow-to-defun-or-para ()
"Make text outside current function invisible.
@@ -407,7 +409,8 @@ current function."
(point))))
(narrow-to-region beg end))))
-(define-obsolete-function-alias 'ess-narrow-to-defun 'ess-narrow-to-defun-or-para "15.09")
+(define-obsolete-function-alias 'ess-narrow-to-defun
+ #'ess-narrow-to-defun-or-para "15.09")
;; FIXME: Support soft breaks with `insert-and-inherit'. See
;; https://www.gnu.org/software/emacs/manual/html_node/emacs/Hard-and-Soft-Newlines.html