~ubuntu-branches/ubuntu/trusty/ess/trusty

« back to all changes in this revision

Viewing changes to lisp/ess-mode.el

  • Committer: Package Import Robot
  • Author(s): Dirk Eddelbuettel
  • Date: 2012-12-22 00:56:45 UTC
  • mfrom: (1.2.28)
  • Revision ID: package-import@ubuntu.com-20121222005645-itzbu0xupmctgysn
Tags: 12.09-1-1
* New upstream version released twelve hours ago

* debian/control: Mention Julia in Description: (Closes: #692468)

Show diffs side-by-side

added added

removed removed

Lines of Context:
109
109
;;*;; Major mode definition
110
110
 
111
111
 
112
 
(defvar ess-eval-map
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)
124
 
    map)
125
 
  "Keymap for ess-eval functions.")
126
 
 
127
 
 
128
112
(defvar ess-mode-map
129
113
  (let ((map (make-sparse-keymap)))
130
114
 
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)
 
168
 
 
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)
187
172
    map)
188
173
  "Keymap for `ess-mode'.")
189
174
 
 
175
 
 
176
(defvar ess-eval-map
 
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)
 
188
    map)
 
189
  "Keymap for ess-eval functions.")
 
190
(make-obsolete-variable 'ess-eval-map nil "ESS12.09.1")
 
191
 
 
192
(defvar ess-extra-map
 
193
  (let (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" 
 
204
    ess-extra-map)
 
205
  "ESS extra map"
 
206
  )
 
207
 
 
208
 
190
209
(require 'ess-noweb-mode)
191
210
 
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]
203
221
    ;; sub menus
204
222
    "------"
205
 
    ("Font Lock"
206
 
     :active ess-font-lock-keywords
207
 
     :filter ess-generate-font-lock-submenu)
 
223
    ("Process"
 
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]
 
227
     ("Start Process"
 
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
 
237
      ("Other"
 
238
       ["No other R or Sqpe versions" nil nil])
 
239
      ["About"
 
240
       (ess-goto-info "Starting up") t]
 
241
      ;; :help "Read about starting a new ESS process" :active t]
 
242
      )
 
243
     ("Eval visibly "
 
244
      :filter ess--generate-eval-visibly-submenu ))
208
245
    "------"
209
246
    ("ESS Eval"
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]
226
264
     )
235
273
     ["About"           (ess-goto-info "Evaluating code") t]
236
274
     )
237
275
    ("Motion"
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]
242
278
     "-----"
260
296
     ["Undo"              undo                                  t]
261
297
     ["About"             (ess-goto-info "Edit buffer")         t]
262
298
     )
263
 
    ("Start Process"
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
273
 
     ("Other"
274
 
      ["No other R or Sqpe versions" nil nil])
275
 
     ["About"
276
 
      (ess-goto-info "Starting up") t]
277
 
     ;; :help "Read about starting a new ESS process" :active t]
278
 
     )
279
 
    ["Switch Process"   ess-switch-process              t]
280
299
    "------"
281
300
    ("start-dev" :visible nil)
282
301
    ("end-dev" :visible nil)
283
302
    "------"
 
303
    ("Font Lock"
 
304
     :active ess-font-lock-keywords
 
305
     :filter ess-generate-font-lock-submenu)
 
306
    "------"
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"
578
598
 
579
599
  ;; FIXME: should not throw error in accordance with beginning-of-defun and
580
600
  ;; beginning-of-defun-function specification
581
 
  
 
601
 
582
602
  (interactive)
583
603
  (let ((init-point (point))
584
604
        (in-set-S4 nil)
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"))))
1386
1406
 
1387
1407
  (let* ((dirname (file-name-as-directory
1388
1408
                   (if (stringp ess-source-directory)