109
109
;;*;; Major mode definition
113
(let ((map (make-sparse-keymap)))
114
(define-key map "\C-r" 'ess-eval-region)
115
(define-key map "\M-r" 'ess-eval-region-and-go)
116
(define-key map "\C-b" 'ess-eval-buffer)
117
(define-key map "\M-b" 'ess-eval-buffer-and-go)
118
(define-key map "\C-f" 'ess-eval-function)
119
(define-key map "\M-f" 'ess-eval-function-and-go)
120
(define-key map "\C-x" 'ess-eval-function)
121
(define-key map "\C-n" 'ess-eval-line-and-step)
122
(define-key map "\C-j" 'ess-eval-line)
123
(define-key map "\M-j" 'ess-eval-line-and-go)
125
"Keymap for ess-eval functions.")
128
112
(defvar ess-mode-map
129
113
(let ((map (make-sparse-keymap)))
152
136
(define-key map "\C-\M-a" 'ess-goto-beginning-of-function-or-para)
153
137
(define-key map "\C-\M-e" 'ess-goto-end-of-function-or-para)
154
138
(define-key map "\C-xnd" 'ess-narrow-to-defun)
155
(define-key map "\C-c\C-y" 'ess-switch-to-ESS)
156
(define-key map "\C-c\C-z" 'ess-switch-to-end-of-ESS)
139
(define-key map "\C-c\C-y" 'ess-switch-to-ESS-deprecated)
140
(define-key map "\C-c\C-z" 'ess-switch-to-inferior-or-script-buffer)
157
141
(define-key map "\C-c\C-l" 'ess-load-file)
142
(define-key map "\C-c\M-l" 'ess-load-file); alias, as in 'iESS' where C-c C-l is comint-list-*
158
143
(define-key map "\C-c\C-v" 'ess-display-help-on-object)
159
(define-key map "\C-c\C-d" 'ess-dump-object-into-edit-buffer)
160
144
;;(define-key map "\C-c5\C-d"'ess-dump-object-into-edit-buffer-other-frame)
161
145
(define-key map "\C-c\C-s" 'ess-switch-process) ; use a
162
146
;; different process for the buffer.
163
(define-key map "\C-c\C-t" 'ess-execute-in-tb)
147
;; (define-key map "\C-c\C-t" 'ess-execute-in-tb)
164
148
(define-key map "\C-c\t" 'ess-complete-object-name-deprecated)
165
149
;;M (define-key map "\C-c\t" 'comint-dynamic-complete-filename)
166
150
(unless (and (featurep 'emacs) (>= emacs-major-version 24))
181
165
(define-key map "\C-c\C-q" 'ess-quit)
182
166
;; smart operators; most likely will go in the future into a separate local map
183
167
(define-key map "," 'ess-smart-comma)
184
(define-key map "\C-c\C-e" ess-eval-map)
185
(define-key map "\C-ch" 'ess-handy-commands)
186
(define-key map "\C-cd" 'ess-dev-map)
169
(define-key map "\C-c\C-d" 'ess-doc-map)
170
(define-key map "\C-c\C-e" 'ess-extra-map)
171
(define-key map "\C-c\C-t" 'ess-dev-map)
188
173
"Keymap for `ess-mode'.")
177
(let ((map (make-sparse-keymap)))
178
;; (define-key map "\C-r" 'ess-eval-region)
179
;; (define-key map "\M-r" 'ess-eval-region-and-go)
180
;; (define-key map "\C-b" 'ess-eval-buffer)
181
;; (define-key map "\M-b" 'ess-eval-buffer-and-go)
182
;; (define-key map "\C-f" 'ess-eval-function)
183
;; (define-key map "\M-f" 'ess-eval-function-and-go)
184
;; (define-key map "\C-x" 'ess-eval-function)
185
;; (define-key map "\C-n" 'ess-eval-line-and-step)
186
;; (define-key map "\C-j" 'ess-eval-line)
187
;; (define-key map "\M-j" 'ess-eval-line-and-go)
189
"Keymap for ess-eval functions.")
190
(make-obsolete-variable 'ess-eval-map nil "ESS12.09.1")
192
(defvar ess-extra-map
194
(define-prefix-command 'ess-extra-map)
195
(define-key ess-extra-map "\C-d" 'ess-dump-object-into-edit-buffer)
196
(define-key ess-extra-map "d" 'ess-dump-object-into-edit-buffer)
197
(define-key ess-extra-map "\C-t" 'ess-build-tags-for-directory)
198
(define-key ess-extra-map "t" 'ess-build-tags-for-directory)
199
(define-key ess-extra-map "\C-l" 'ess-load-library)
200
(define-key ess-extra-map "l" 'ess-load-library)
201
(define-key ess-extra-map "\C-i" 'ess-install-library)
202
(define-key ess-extra-map "i" 'ess-install-library)
203
;; (define-key map "C-t"
190
209
(require 'ess-noweb-mode)
192
211
(easy-menu-define
199
218
["Eval region | func | para & step" ess-eval-region-or-function-or-paragraph-and-step t]
200
219
["Eval region | line" ess-eval-region-or-line-and-step t]
201
220
["Enter expression" ess-execute-in-tb t]
202
["Handy commands" ess-handy-commands t]
206
:active ess-font-lock-keywords
207
:filter ess-generate-font-lock-submenu)
224
["Goto end of process buffer" ess-switch-to-end-of-ESS t]
225
["Switch to process buffer" ess-switch-to-inferior-or-script-buffer t]
226
["Switch Process" ess-switch-process t]
228
;; SJE - :help not yet recognised in XEmacs.
229
["R" R t] ;; :help "Start a new R process" :active t
230
["S" S t] ;; :help "Start a new S process" :active t
231
["Sqpe" Sqpe ess-microsoft-p] ;; :help "Start a new Sqpe process" :active t
232
["S+6-exisiting" S+6-existing ess-microsoft-p] ;; :help "Access an existing S process" :active t
233
["SAS" SAS-menu t] ;; :help "Start a new SAS process" :active t
234
;; The following menu item "Other" is a place-holder that will
235
;; be replaced with the other versions of R and Sqpe that can be run.
236
;; See `ess-r-versions-create' and ess-site.el
238
["No other R or Sqpe versions" nil nil])
240
(ess-goto-info "Starting up") t]
241
;; :help "Read about starting a new ESS process" :active t]
244
:filter ess--generate-eval-visibly-submenu ))
210
247
["Eval region | func | para" ess-eval-region-or-function-or-paragraph t]
221
258
["Eval paragraph" ess-eval-paragraph t]
222
259
["Eval paragraph & step" ess-eval-paragraph-and-step t]
223
260
["Eval chunk" ess-eval-chunk ess-noweb-mode]
261
["Eval chunk and step" ess-eval-chunk-and-step ess-noweb-mode]
224
262
["Eval thread" ess-eval-thread ess-noweb-mode]
225
263
["About" (ess-goto-info "Evaluating code") t]
235
273
["About" (ess-goto-info "Evaluating code") t]
238
["Goto end of ESS buffer" ess-switch-to-end-of-ESS t]
239
["Switch to ESS buffer" ess-switch-to-ESS t]
240
276
["Beginning of function or para" ess-goto-beginning-of-function-or-para t]
241
277
["End of function or para" ess-goto-end-of-function-or-para t]
261
297
["About" (ess-goto-info "Edit buffer") t]
264
;; SJE - :help not yet recognised in XEmacs.
265
["R" R t] ;; :help "Start a new R process" :active t
266
["S" S t] ;; :help "Start a new S process" :active t
267
["Sqpe" Sqpe ess-microsoft-p] ;; :help "Start a new Sqpe process" :active t
268
["S+6-exisiting" S+6-existing ess-microsoft-p] ;; :help "Access an existing S process" :active t
269
["SAS" SAS-menu t] ;; :help "Start a new SAS process" :active t
270
;; The following menu item "Other" is a place-holder that will
271
;; be replaced with the other versions of R and Sqpe that can be run.
272
;; See `ess-r-versions-create' and ess-site.el
274
["No other R or Sqpe versions" nil nil])
276
(ess-goto-info "Starting up") t]
277
;; :help "Read about starting a new ESS process" :active t]
279
["Switch Process" ess-switch-process t]
281
300
("start-dev" :visible nil)
282
301
("end-dev" :visible nil)
304
:active ess-font-lock-keywords
305
:filter ess-generate-font-lock-submenu)
284
307
["Describe" describe-mode t]
285
308
["About editing" (ess-goto-info "Editing") t]
286
309
["Read ESS info" (ess-goto-info "") t]
403
426
(kill-all-local-variables) ;; NOTICE THIS! *** NOTICE THIS! *** NOTICE THIS! ***
404
427
(ess-setq-vars-local alist)
405
428
;; must happen here, since the mode map is set up too early:
406
;;this is bass-ackwards
407
;; (define-key ess-mode-map "(" ;; allow to toggle after customization:
408
;; (if ess-r-args-electric-paren 'ess-r-args-auto-show 'self-insert-command))
409
429
(if ess-r-args-electric-paren (define-key ess-mode-map "(" 'ess-r-args-auto-show))
410
430
(ess-write-to-dribble-buffer
411
431
(format "(ess-mode-1): ess-language=%s, ess-dialect=%s buf=%s \n"
1382
1402
(ess-force-buffer-current "Process to dump from: ")
1383
1403
(if (ess-ddeclient-p)
1384
1404
(list (read-string "Object to edit: "))
1385
(ess-read-object-name "Object to edit: "))))
1405
(ess-read-object-name "Object to edit"))))
1387
1407
(let* ((dirname (file-name-as-directory
1388
1408
(if (stringp ess-source-directory)