;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\207" [require ess-generics ess-utils newcomment comint overlay compile format-spec ess-tracebug] 2) #@131 Return name of process N, as a string, with NAME prepended. If `ess-plain-first-buffername', then initial process is number-free. (defalias 'ess-proc-name #[(n name) " \205\n\303U?\205\304\305\n!PP\207" [name ess-plain-first-buffername n 1 ":" number-to-string] 4 (#$ . 301)]) #@1251 Start inferior ESS process. Without a prefix argument, starts a new ESS process, or switches to the ESS process associated with the current buffer. With ESS-START-ARGS (perhaps specified via \[universal-argument]), starts the process with those args. The current buffer is used if it is an `inferior-ess-mode' or `ess-transcript-mode' buffer. If `ess-ask-about-transfile' is non-nil, you will be asked for a transcript file to use. If there is no transcript file, the buffer name will be like *R* or *R2*, determined by `ess-gen-proc-buffer-name-function'. Takes the program name from the variable `inferior-ess-program'. An initialization file (dumped into the process) is specified by `inferior-ess-start-file', and `inferior-ess-start-args' is used to accompany the call for `inferior-ess-program'. When creating a new process, the process buffer replaces the current window if `inferior-ess-same-window' is non-nil. Alternatively, it can appear in its own frame if `inferior-ess-own-frame' is non-nil. (Type \[describe-mode] in the process buffer for a list of commands.) CUSTOMIZE-ALIST is the list of dialect-specific variables. When non-nil, NO-WAIT tells ESS not to wait for the process to finish. This may be useful for debugging. (defalias 'inferior-ess #[(&optional ess-start-args customize-alist no-wait) "\206 \306\305 \236A!\306\304 \236A!\307\310!\210\311\312\313\f \np%!\210@@A\203<\n\314\230\2038\315B!\202=\n\202=\nC D\316E\317\320EC\"!\203XETE\202E\320EC\")FGF!H\321FC\"\211IJ\322\211KL\311\312\323FCH$!\210\324p!\204\237M\325=\203\237pK\326 H\316L\202\337\327H!\203\262\327H!K\330L\202\337N\203\326\331\332I\333#\211O\333\230\203\314\334H!\202\322\335\336O!!)\202\332\334H!K\337L\311\312\340LIK$!\210Kq\210IJ\341 !\210\311\312\342\f p$!\210P\206QR\317F!\211S\203+\324\343S!!\203+\311\312\344!!\210\345\343S!!\202\206\346T\347QU\350U!\211V\205F\351V!\205FVJW\325 \210\311\312\352TRX$!\210FYdb\210-\203\220-\353=\203t\354\355!\210\356 \357Q-\336-Z\206~I\"[\360[!\203\217[\\\361 \210)rKq\210\362H\353\"\210)]\203\256\363^!\210\364K!\210\202\300_\203\273\364K!\210\202\300\345K!\210W\203\322\365HFRW$\202\332\365HFR#\211Kq\210IJ\366K!S\367S\370\"\210\371F`\"\211a\204FC`B`)\372 \210db\210\322b\373S\374\"\210\375S!\210c\204+\311\376!\210\377S\322\201g\353$\210S\203=\201hS!\201i=\204G\201j\201kF\"\210\354\201d!\210\201ld\354\201e!\210\201mef\203i\201nI!\210\307\201o!\210\201p\353!\210c?\205\205\311\201q!\210\377S!+.\207" [customize-alist ess-customize-alist temp-ess-dialect temp-ess-lang ess-language ess-dialect eval run-hooks ess-pre-run-hook ess-write-to-dribble-buffer format "(inf-ess 1): lang=%s, dialect=%s, tmp-dialect=%s, buf=%s\n" "R" file-name-nondirectory 1 get-process ess-proc-name inferior-ess--maybe-prompt-startup-directory nil "(inf-ess 1.1): procname=%s temp-dialect=%s, buf-name=%s \n" comint-check-proc inferior-ess-mode buffer-name get-buffer 2 read-file-name "Use transcript file (default none):" "" get-buffer-create find-file-noselect expand-file-name 3 "(inf-ess 2.0) Method #%d start=%s buf=%s\n" ess-setq-vars-local "(inf-ess 2.1): ess-language=%s, ess-dialect=%s buf=%s \n" process-buffer "(inf-ess ..): popping to proc\n" pop-to-buffer "inferior-" "-args" intern-soft boundp "(inf-ess 3.0): prog=%s, start-args=%s, echoes=%s\n" t make-local-variable ess-history-file "." "history" file-readable-p comint-read-input-ring rename-buffer make-frame switch-to-buffer inferior-ess-make-comint get-buffer-process set-process-sentinel ess-process-sentinel assoc ess-make-buffer-current set-process-filter inferior-ess-output-filter inferior-ess-mark-as-busy "(inferior-ess: waiting for process to start (before hook)\n" ess-wait-for-process process-environment ess-use-inferior-program-in-buffer-name inferior-ess-r-program temp-dialect temp-lang ntry procname ess-gen-proc-buffer-name-function buf-name-str cur-dir default-directory buf method major-mode ess-ask-about-transfile transfilename ess-start-args inferior-ess-start-args infargs proc inferior-ess-program symbol-string switches-symbol switches comint-process-echoes ess-local-process-name ess-history-directory histfile comint-input-ring-file-name inferior-ess-own-frame inferior-ess-frame-alist inferior-ess-same-window ess-process-name-list conselt ess-sl-modtime-alist no-wait syntax-begin-function font-lock-fontify-region-function ess-setwd-command 0.01 process-status run error "Process %s failed to start" inferior-ess-last-prompt-end inferior-ess-fontify-region ess-set-working-directory ess-post-run-hook ess-load-extras "(inferior-ess 3): waiting for process after hook"] 8 (#$ . 591) nil]) (defalias 'ess--accumulation-buffer #[(proc) "\303\304\"\305 !\203 \202.\306\307\310\311!\"!\312\304 #\210r q\210\313 \210\314\302!\210\315) ))\207" [proc abuf inhibit-modification-hooks process-get :accum-buffer buffer-live-p get-buffer-create format " *%s:accum*" process-name process-put buffer-disable-undo make-local-variable t] 5]) #@161 The language/dialect specific command for listing objects. It is initialized from the corresponding inferior--objects-command and then made buffer local. (defvar inferior-ess-objects-command nil (#$ . 5738)) (make-variable-buffer-local 'inferior-ess-objects-command) #@142 The command to save the last value. See S section for more details. Default depends on the ESS language/dialect and hence made buffer local (defvar ess-save-lastvalue-command nil (#$ . 6018)) (make-variable-buffer-local 'ess-save-lastvalue-command) #@146 The command to retrieve the last value. See S section for more details. Default depends on the ESS language/dialect and hence made buffer local (defvar ess-retr-lastvalue-command nil (#$ . 6275)) (make-variable-buffer-local 'ess-retr-lastvalue-command) #@70 Move to the end of last prompt from POS, but not further than LIMIT. (defalias 'inferior-ess-last-prompt-end #[(&optional pos limit) "\206`\211b\210\303\210\304 \n\305#\205\306\225b)\207" [pos inferior-ess-prompt limit nil re-search-backward t 0] 5 (#$ . 6535)]) #@72 Fontify output by output to avoid fontification spilling over prompts. (defalias 'inferior-ess-fontify-region #[(beg end &optional verbose) "\306\211\306\307p \307 W\205^\310 \306\211\306\311\216W\203Tb\210\312\313!\210`^\214}\210\314#\210)\211\202' \315 -BB.\207" [buffer-undo-list inhibit-point-motion-hooks font-lock-dont-widen font-lock-extend-region-functions buff beg t nil buffer-modified-p #[nil "?\205\301\302!\207" [#1=#:modified restore-buffer-modified-p nil] 2] comint-next-prompt 1 font-lock-default-fontify-region jit-lock-bounds pos1 pos2 end #1# inhibit-read-only inhibit-modification-hooks verbose compilation--parsed] 5 (#$ . 6811)]) #@113 Function to generate buffer name by wrapping PROC-NAME in *proc-name*. See `ess-gen-proc-buffer-name-function'. (defalias 'ess-gen-proc-buffer-name:simple #[(proc-name) "\301\302\"\207" [proc-name format "*%s*"] 3 (#$ . 7523)]) #@158 Function to generate buffer name by wrapping PROC-NAME in *PROC-NAME:DIR-NAME*. DIR-NAME is a short directory name. See `ess-gen-proc-buffer-name-function'. (defalias 'ess-gen-proc-buffer-name:directory #[(proc-name) "\302\303\304\305 !!#\207" [proc-name default-directory format "*%s:%s*" file-name-nondirectory directory-file-name] 6 (#$ . 7759)]) #@305 Function to generate buffer name in the form *PROC-NAME:ABBREVIATED-LONG-DIR-NAME*. PROC-NAME is a string representing an internal process name. ABBREVIATED-LONG-DIR-NAME is an abbreviated full directory name. Abbreviation is performed by `abbreviate-file-name'. See `ess-gen-proc-buffer-name-function'. (defalias 'ess-gen-proc-buffer-name:abbr-long-directory #[(proc-name) "\302\303\304 !#\207" [proc-name default-directory format "*%s:%s*" abbreviate-file-name] 5 (#$ . 8117)]) #@375 Function to generate buffer name in the form *PROC-NAME:PROJECTILE-ROOT*. PROC-NAME is a string representing an internal process name. PROJECTILE-ROOT is directory name returned by `projectile-project-p' if defined. If `projectile-project-p' is undefined or no project directory has been found use `ess-gen-proc-buffer-name:simple'. See `ess-gen-proc-buffer-name-function'. (defalias 'ess-gen-proc-buffer-name:projectile-or-simple #[(proc-name) "\302\303!\205\303 \211\203\304\305 \306\307!!#\202\310 !)\207" [proj proc-name fboundp projectile-project-p format "*%s:%s*" file-name-nondirectory directory-file-name ess-gen-proc-buffer-name:simple] 7 (#$ . 8605)]) #@380 Function to generate buffer name in the form *PROC-NAME:PROJECTILE-ROOT*. PROC-NAME is a string representing an internal process name. PROJECTILE-ROOT is directory name returned by `projectile-project-p' if defined. If `projectile-project-p' is undefined, or no project directory has been found, use `ess-gen-proc-buffer-name:directory'. See `ess-gen-proc-buffer-name-function'. (defalias 'ess-gen-proc-buffer-name:projectile-or-directory #[(proc-name) "\302\303!\205\303 \211\203\304\305 \306\307!!#\202\310 !)\207" [proj proc-name fboundp projectile-project-p format "*%s:%s*" file-name-nondirectory directory-file-name ess-gen-proc-buffer-name:directory] 7 (#$ . 9283)]) #@125 Internal function to set the satus of the PROC. If no-timestamp, don't set the last-eval timestamp. Return the 'busy state. (defalias 'inferior-ess-set-status #[(proc string &optional no-timestamp) "\306\307\310Q \"?\311 \312\n?\205\313 \302\"#\210\n\204!\311 \314\315#\210\311 \302\n#\210\311 \316\f\2055\306\307\f\310Q \"#\210 \204B\311 \317\320 #\210\n)\207" [inferior-ess-primary-prompt string busy proc inferior-ess-secondary-prompt no-timestamp string-match "\\(" "\\)\\'" process-put busy-end\? process-get running-async\? nil sec-prompt last-eval current-time] 7 (#$ . 9972)]) (defalias 'inferior-ess-mark-as-busy #[(proc) "\301\302\303#\210\301\304\305#\207" [proc process-put busy t sec-prompt nil] 4]) (defalias 'inferior-ess-run-callback #[(proc string) "\306\307\"?\205b\306\310\"@\311 !?\211\205 :\205 A\n\203- :\203- @\202. \211\205a\f\203;\312\313!\210 \203E\314\315\316#\210\314\310\317#\210\3201W  \"0\202a\321\322\323!\"),\207" [proc cb listp suppress ess-verbose string process-get busy callbacks functionp ess-write-to-dribble-buffer "executing callback ...\n" process-put suppress-next-output\? t nil (error) message "%s" error-message-string err] 5]) (defalias 'ess--if-verbose-write-process-state #[(proc string &optional filter) "\303\304\305\206\306\307 \310\"\307 \311\"\307 \312\"\307 \313\"\307 \314\"\307 \315\"\205$\316\307 \317\"\307 \320\"\307 \321\"\nG\322V\203E\304\323\n\324\325O\n\326\327O#\202F\n&\f!\207" [filter proc string ess-if-verbose-write format "\n%s:\n --> busy:%s busy-end:%s sec-prompt:%s interruptable:%s <--\n --> running-async:%s callback:%s suppress-next-output:%s <--\n --> dbg-active:%s is-recover:%s <--\n --> string:%s\n" "NORMAL-FILTER" process-get busy busy-end\? sec-prompt interruptable\? running-async\? callbacks "yes" suppress-next-output\? dbg-active is-recover 150 "%s .... %s" 0 50 -50 nil] 19]) #@191 Standard output filter for the inferior ESS process PROC. Ring Emacs bell if process output starts with an ASCII bell, and pass the rest to `comint-output-filter'. Taken from octave-mod.el. (defalias 'inferior-ess-output-filter #[(proc string) "\302 \"\210\303 \"\210\304 \"\210\305\306\"\203\307\306\310#\207\311\312 !\"\207" [proc string inferior-ess-set-status ess--if-verbose-write-process-state inferior-ess-run-callback process-get suppress-next-output\? process-put nil comint-output-filter inferior-ess-strip-ctrl-g] 4 (#$ . 11896)]) #@215 Strip leading `^G' character. If STRING starts with a `^G', ring the Emacs bell and strip it. Depending on the value of `visible-bell', either the frame will flash or you'll hear a beep. Taken from octave-mod.el. (defalias 'inferior-ess-strip-ctrl-g #[(string) "\301\302\"\203\303 \210\304\305O\207" [string string-match "^" ding 1 nil] 3 (#$ . 12453)]) #@105 Sentinel for use with ESS processes. This marks the process with a message, at a particular time point. (defalias 'ess-process-sentinel #[(proc message) "\212\303\304\"\305 !\203\306 !\210)\n\307\310O\311!q\210\312 \210db\210\313\314\315\316!\n\317 $!)\207" [proc abuf message process-get :accum-buffer buffer-live-p kill-buffer 0 -1 process-buffer comint-write-input-ring insert-before-markers format "\nProcess %s %s at %s\n" process-name current-time-string] 6 (#$ . 12822)]) #@67 Make an S comint process in buffer BUFNAME with process PROCNAME. (defalias 'inferior-ess-make-comint #[(bufname procname infargs &rest switches) "\306!\307\n!\211\203\310 !\311>\204cr q\210\312 \313=\204%db\210\314c\210)\315\316\317\f\"D \244\320\321!\2058\322!\315\316\317\f\"D\244\323\324!\210\323\316\325 \n&!\210\326 \n\327!%\210* *\207" [bufname buffer procname proc inferior-ess-pager process-environment get-buffer-create get-process process-status (run stop) buffer-size 0 "\f\n" "STATATERM=emacs" format "PAGER=%s" boundp tramp-remote-process-environment copy-sequence ess-write-to-dribble-buffer "Making Process..." "Buf %s, :Proc %s, :Prog %s\n :Args= %s\nStart File=%s\n" comint-exec ess-line-to-list-of-words inferior-ess-program infargs inferior-ess-start-file] 9 (#$ . 13314)]) (defalias 'inferior-ess--get-startup-directory #[nil "\203\305\306!\203\306 A\206 \203 \206\n\206 \307\f!)\207" [ess--enable-experimental-projects ess-directory-function ess-startup-directory default-directory dir fboundp project-current directory-file-name] 2]) #@203 Possibly prompt for a startup directory. When `ess-ask-for-ess-directory' is non-nil, prompt. PROCNAME is the name of the inferior process (e.g. "R:1"), and DIALECT is the language dialect (e.g. "R"). (defalias 'inferior-ess--maybe-prompt-startup-directory #[(procname dialect) "\305\306!\203\306\307 \"\202\307 \n\203\"\310\311 \"\312 \f\")\202# )\207" [dialect default-dir ess-ask-for-ess-directory procname prompt fboundp inferior-ess-r--adjust-startup-directory inferior-ess--get-startup-directory format "%s starting project directory? " ess-prompt-for-directory] 3 (#$ . 14419)]) #@53 PROMPT for a directory, using DEFAULT as the usual. (defalias 'ess-prompt-for-directory #[(default prompt) "\304!\305\304\306\n \211\307\310%!!\311 !\204\312\313 \"\210 *\207" [default def-dir prompt the-dir file-name-as-directory expand-file-name read-directory-name t nil file-directory-p error "%s is not a valid directory"] 8 (#$ . 15021)]) #@217 Execute BODY in the process buffer of `ess-current-process-name'. If NO-ERROR is t don't trigger error when there is not current process. Symbol *proc* is bound to the current process during the evaluation of BODY. (defalias 'with-ess-process-buffer '(macro . #[(no-error &rest body) "\302\303\304\305\306\307BB\310 \311BBFE\207" [body no-error let ((*proc* (and ess-local-process-name (get-process ess-local-process-name)))) if *proc* with-current-buffer (process-buffer *proc*) unless ((error "No current ESS process"))] 8 (#$ . 15378)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put with-ess-process-buffer lisp-indent-function 1 put edebug-form-spec t] 5) #@110 Like `with-current-buffer' but with transfer of some essential local ESS vars like `ess-local-process-name'. (defalias 'ess-with-current-buffer '(macro . #[(buffer &rest body) "\304\305!\304\306!\307 \310B\311BD\312\n\313\314DD\315\316 E BBBBE*\207" [alist lpn buffer body make-symbol "lpn" "alist" let (ess-local-process-name) (ess-local-customize-alist) with-current-buffer ess-setq-vars-local eval setq ess-local-process-name] 8 (#$ . 16068)])) (byte-code "\302\303\304\305#\306\303\307\310#\210\311\312\211\203\" @\313\314\"\210 A\211\204*\312\207" [mode --dolist-tail-- function-put ess-with-current-buffer lisp-indent-function 1 put edebug-form-spec t (emacs-lisp-mode lisp-interaction-mode) nil font-lock-add-keywords (("(\\(ess-with-current-buffer\\)\\s +\\(\\(\\w\\|\\s_\\)+\\)" (1 font-lock-keyword-face) (2 font-lock-variable-name-face)))] 6) #@262 Return the ESS process named by NAME. If USE-ANOTHER is non-nil, and the process NAME is not running (anymore), try to connect to another if there is one. By default (USE-ANOTHER is nil), the connection to another process happens interactively (when possible). (defalias 'ess-get-process #[(&optional name use-another) "\206 \211\204\306\307!\210\310 \210\311\n\"\203\312!\207\313\314\315\"!\210\nG\316U\203Dr\313\314\317 p$!\210\320\321 #\210\322 \f\"\210\323!)\207 \203Z\n\316\234@\320\324\"\210\323!)\207\325 \210\326\314\327\"!\203r\330\f\331P\332\"\210\323!\207\306\333\"\207" [name ess-local-process-name ess-process-name-list ess-language ess-dialect use-another error "No ESS process is associated with this buffer now" update-ess-process-name-list assoc get-process ess-write-to-dribble-buffer format "ess-get-process: process '%s' not running" 0 " .. restart proc %s for language %s (buf %s)\n" message "trying to (re)start process %s for language %s ..." ess-start-process-specific ess-get-process "associating with *other* process '%s'" ding y-or-n-p "Process %s is not running, but others are. Switch? " ess-force-buffer-current " process to use: " force "Process %s is not running" other-name ess-current-process-name] 7 (#$ . 16941)]) (defalias 'inferior-ess-default-directory #[nil "\300\301!\207" [ess-get-process-variable default-directory] 2]) #@150 Make the process associated with the current buffer the current ESS process. Returns the name of the process, or nil if the current buffer has none. (defalias 'ess-make-buffer-current #[nil "\301 \210\207" [ess-local-process-name update-ess-process-name-list] 1 (#$ . 18338)]) #@77 Return the variable VAR (symbol) local to ESS process called NAME (string). (defalias 'ess-get-process-variable #[(var) "\302\303\304 !!\"\207" [var ess-local-process-name buffer-local-value process-buffer ess-get-process] 5 (#$ . 18622)]) #@77 Set variable VAR (symbol) local to ESS process called NAME (string) to VAL. (defalias 'ess-set-process-variable #[(var val) "r\303\304!!q\210 \nL)\207" [ess-local-process-name var val process-buffer ess-get-process] 3 (#$ . 18869)]) #@121 Check if the local ess process is alive. Return nil if current buffer has no associated process, or process was killed. (defalias 'ess-process-live-p #[nil "\205\302!\303 !\205\304 !)\207" [ess-local-process-name proc get-process processp process-live-p] 2 (#$ . 19110)]) #@82 Return the variable PROPNAME (symbol) from the plist of the current ESS process. (defalias 'ess-process-get #[(propname) "\302\303! \"\207" [ess-local-process-name propname process-get get-process] 3 (#$ . 19395)]) #@86 Set the variable PROPNAME (symbol) to VALUE in the plist of the current ESS process. (defalias 'ess-process-put #[(propname value) "\303\304! \n#\207" [ess-local-process-name propname value process-put get-process] 4 (#$ . 19617)]) #@96 Start an ESS process. Typically from a language-specific buffer, using LANGUAGE (and DIALECT). (defalias 'ess-start-process-specific #[(language dialect) "\204\303\304!\210r\305!\306\307\310\np$!\210\311 !\203! \202&\303\312\n#*\207" [dialect dsymb language error "The value of `dialect' is nil" intern ess-write-to-dribble-buffer format " ..start-process-specific: lang:dialect= %s:%s, current-buf=%s\n" fboundp "No ESS processes running; not yet implemented to start (%s,%s)"] 6 (#$ . 19856)]) #@294 Ask for a process, and make it the current ESS process. If there is exactly one process, only ask if ASK-IF-1 is non-nil. Also switches to the process buffer unless NOSWITCH is non-nil. Interactively, NOSWITCH can be set by giving a prefix argument. Returns the name of the selected process. (defalias 'ess-request-a-process #[(message &optional noswitch ask-if-1) "\306\307!\210\310 \210\206/\311\312\313\314\315\316\301!\203 \202\315\317\316\302!\203&\n\202'\317\320\321\322\323\257 !\"\324\325\326\327\330 \"\331\f \"\205@\fC\"\"\211G0\325\211120\332U\204i0\333U\203\215\334\300\335\336 @!!\"\232\204\215\306\337\340\3413p4%P!\210\3424\"\210\306\340\343p\"!\210\3330 @\3442\327\345 \"52\204\2446\204\2600\333U\203\260\346\3475@\"\210 @\202\3667\203\274\3367!\204\277\3257&\203\314\350\351\352&#&\311&\3265\353C\"\325\344\325\211&\2118\353\232\203\357\3424\"\210 @@\202\365\354\3558!!)9:\203\356p!\210\202\356\357\335\3369!!!\344\"\2109.\207" [ess-dialect S+-dialect-name STA-dialect-name ess-process-name-list ess-local-process-name pname-list ess-write-to-dribble-buffer "ess-request-a-process: {beginning}\n" update-ess-process-name-list ess-completing-read "Set `ess-dialect'" delete-dups "R" "S+" boundp "stata" "julia" "SAS" "XLS" "ViSta" delq nil append mapcar #[(lproc) "\303\300\304\305 @!!\"\232\205\n @\232?\205 @\207" [ess-dialect lproc ess-local-process-name buffer-local-value process-buffer get-process] 6] assoc 0 1 buffer-local-value process-buffer get-process " ... request-a-process:\n " format "major mode %s; current buff: %s; ess-language: %s, ess-dialect: %s\n" ess-start-process-specific " ... request-a-process: buf=%s\n" t #[(lproc) "\301\302\303!!!\207" [lproc buffer-name process-buffer get-process] 4] message "using process '%s'" replace-regexp-in-string ": +\\'" "" "*new*" process-name get-buffer-process pop-to-buffer buffer-name num-processes inferior-ess-same-window auto-started\? major-mode ess-language proc-buffers ask-if-1 ess-current-process-name buf proc noswitch] 13 (#$ . 20369) (list "Switch to which ESS process? " current-prefix-arg)]) #@468 Make sure the current buffer is attached to an ESS process. If not, or FORCE (prefix argument) is non-nil, prompt for a process name with PROMPT. If NO-AUTOSTART is nil starts the new process if process associated with current buffer has died. `ess-local-process-name' is set to the name of the process selected. `ess-dialect' is set to the dialect associated with the process selected. ASK-IF-1 asks user for the process, even if there is only one process running. (defalias 'ess-force-buffer-current #[(&optional prompt force no-autostart ask-if-1) "\206\306\307 \n?\205 \205\310 !?\205P \203,\n\204,\f\203,\311\312 \"\202P\313\314 #\315\211r\316\310!!q\210)\211+)\207" [prompt proc-name force ess-local-process-name no-autostart ask-if-1 "Process to use: " ess-make-buffer-current get-process error "Process %s has died" ess-request-a-process no-switch nil process-buffer dialect temp-ess-help-filetype proc inferior-ess-help-filetype] 4 (#$ . 22534) (list (concat ess-dialect " process to use: ") current-prefix-arg nil)]) (defalias 'inferior-ess-force 'ess-force-buffer-current) #@45 Force a switch to a new underlying process. (defalias 'ess-switch-process #[nil "\300\301\302\303\304$\207" [ess-force-buffer-current "Process to use: " force nil ask-if-1] 5 (#$ . 23659) nil]) #@165 Return first available (aka not busy) process of dialect DIALECT. DIALECT defaults to the local value of ess-dialect. Return nil if no such process has been found. (defalias 'ess-get-next-available-process #[(&optional dialect ignore-busy) "\206 \211\205]\306\3072\\ \310\311\f\"B\306\211\205Z@\211\203P\312 !\211\203P\313\n!\203P\314\301\315\n!\"\232\203P\204K\316\n\317\"\204P\320\307\n\"\210A\211\204\306*0)\207" [dialect ess-dialect proc ess-local-process-name ess-process-name-list p nil found mapcar car get-process process-live-p buffer-local-value process-buffer process-get busy throw --dolist-tail-- ignore-busy] 6 (#$ . 23860)]) #@260 Switch to the current inferior ESS process buffer. With (prefix) EOB-P non-nil, positions cursor at end of buffer. This function should follow the description in `ess-show-buffer' for showing the iESS buffer, except that the iESS buffer is also made current. (defalias 'ess-switch-to-ESS #[(eob-p) "\302 \210\203\303!\203\304\305\306\303!!!\307\"\210 \205%db\207\310\311!\210\312 \207" [ess-current-process-name eob-p ess-force-buffer-current get-process ess-show-buffer buffer-name process-buffer t message "No inferior ESS process" ding] 5 (#$ . 24537) "P"]) (defalias 'ess-switch-to-ESS-deprecated #[(eob-p) "\301!\210\302\303!\207" [eob-p ess-switch-to-ESS message "C-c C-y is deprecated, use C-c C-z instead (ess-switch-to-inferior-or-script-buffer)"] 2 nil "P"]) #@55 Switch to the end of the inferior ESS process buffer. (defalias 'ess-switch-to-end-of-ESS #[nil "\300\301!\207" [ess-switch-to-ESS t] 2 (#$ . 25321) nil]) #@442 If in script, switch to the iESS. If in iESS switch to most recent script buffer. This is a single-key command. Assuming that it is bound to C-c C-z, you can navigate back and forth between iESS and script buffer with C-c C-z C-z C-z ... If variable `ess-switch-to-end-of-proc-buffer' is t (the default) this function switches to the end of process buffer. If TOGGLE-EOB is given, the value of `ess-switch-to-end-of-proc-buffer' is toggled. (defalias 'ess-switch-to-inferior-or-script-buffer #[(toggle-eob) "\306 \203 ?\202\f \307 \310\f!\311#\210\f\312 \310 !\"\313\211\2045\314\315\316\317 !\"\202u\205? \n\"\204h\312 \310\320\313!\211!\"\211\203h \n\"\321\322!\210\313\211\203F\204s B.\207" [toggle-eob ess-switch-to-end-of-proc-buffer EOB map last-command-event ev make-sparse-keymap define-key vector #[(ev eob) "\306=\204\n\307 !\207\n \310 A\f\203Dr\f@q\210\311>\203.\n\232\203. ?\2067\312>\2057 \232)\204D\f\210\fA\211\204\f\203P\313\f@\314\"\202V\315\316 #+\207" [major-mode eob ess-dialect ess-local-process-name blist loc-proc-name inferior-ess-mode ess-switch-to-ESS buffer-list (ess-mode ess-julia-mode) (ess-mode ess-julia-mode) ess-show-buffer t message "Found no buffers for ess-dialect %s associated with process %s" dialect] 5 nil nil] lookup-key nil message "%s is undefined" key-description this-command-keys read-event sleep-for 0.01 command out exit unread-command-events] 6 (#$ . 25483) "P"]) #@66 Return the buffer associated with the ESS process named by NAME. (defalias 'ess-get-process-buffer #[(&optional name) "\302\303\206 !!\207" [name ess-local-process-name process-buffer ess-get-process] 3 (#$ . 26977)]) #@31 Remove names with no process. (defalias 'update-ess-process-name-list #[nil "\306 \306\211\203* @\307\n@!\211\203\310\f!\311=\204\"\nB) A\211\204\n*\306\211\203B @\312 \" A\211\2043+ G\313=\205N\306\211\f\207" [defunct ess-process-name-list conselt --dolist-tail-- proc pointer nil get-process process-status run delq 0 ess-current-process-name] 4 (#$ . 27204)]) #@60 Actions for `ess-show-buffer', passed to `display-buffer'. (custom-declare-variable 'ess-show-buffer-action ''((display-buffer-pop-up-window display-buffer-use-some-window)) '(#$ . 27597) :group 'ess :type '(list (repeat function))) #@500 Ensure the ESS buffer BUF is visible. The buffer, specified as a string, is typically an iESS (e.g. *R*) buffer. This handles several cases: 1. If BUF is visible in the current frame, nothing is done. 2. If BUF is visible in another frame, then we ensure that frame is visible (it may have been iconified). 3. If buffer is not visible in any frame, simply show it in another window in the current frame. If VISIT is non-nil, as well as making BUF visible, we also select it as the current buffer. (defalias 'ess-show-buffer #[(buf &optional visit) "\304\305 !\204$\306 !\211\203\307!\310=\204$\311!\210\202$\312 \n\"\210 \2056\2030\313!\210\314\315 \316\"!)\207" [frame buf ess-show-buffer-action visit nil ess-buffer-visible-this-frame ess-buffer-visible-other-frame frame-visible-p t raise-frame display-buffer ess-select-frame-set-input-focus select-window get-buffer-window 0] 5 (#$ . 27837)]) (defvar ess-bufs-in-frame nil) #@66 Used by `ess-get-buffers-in-frames' to walk through all windows. (defalias 'ess-get-bufname #[(win) "\303\304!!\211\n\235?\205 \nB\211)\207" [win buf ess-bufs-in-frame buffer-name window-buffer] 4 (#$ . 28787)]) #@171 Return the list of buffers that are visible in the current frame. If optional argument CURRENT is given, restrict searching to the current frame, rather than all frames. (defalias 'ess-get-buffers-in-frames #[(&optional current) "\302\303\304\302 ?\205 \305#\210)\207" [ess-bufs-in-frame current nil walk-windows ess-get-bufname 0] 4 (#$ . 29011)]) #@46 Return t if BUF is visible in current frame. (defalias 'ess-buffer-visible-this-frame #[(buf) "\301\302!\235\207" [buf ess-get-buffers-in-frames t] 3 (#$ . 29369)]) #@114 Return t if BUF is visible in another frame. Assumes that buffer has not already been in found in current frame. (defalias 'ess-buffer-visible-other-frame #[(buf) "\301\302!!\303 \235\205\304\305\306\"!\207" [buf buffer-name get-buffer ess-get-buffers-in-frames window-frame get-buffer-window 0] 4 (#$ . 29542)]) #@67 When defined this function is called by `ess-build-eval-command'. (defvar ess-build-eval-command-function nil (#$ . 29865)) (make-variable-buffer-local 'ess-build-eval-command-function) #@288 Format an evaluation command. Wrap STRING with `ess-quote-special-chars' and dispatch on the dialect-specific `ess-build-eval-command' function and `ess-eval-command', in that order. If none of the above is defined, return nil. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-build-eval-command #[(string &optional visibly output file &rest args) "\306!\307 !\203\310 \n \f &\207\f\205$\311\f\312B\313\fBD\"\207" [string ess-build-eval-command-function visibly output file args ess-quote-special-chars fboundp apply format-spec 115 102 ess-eval-command] 7 (#$ . 30058)]) #@67 When defined this function is called by `ess-build-load-command'. (defvar ess-build-load-command-function nil (#$ . 30671)) (make-variable-buffer-local 'ess-build-load-command-function) #@185 Format a loading command. Dispatches on the dialect-specific `ess-build-load-command' and `ess-load-command', in that order. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-build-load-command #[(file &optional visibly output &rest args) "\306!\203\307 \n \f%\207 \205\310 \"\207" [ess-build-load-command-function file visibly output args ess-load-command fboundp apply format] 6 (#$ . 30864)]) #@480 Wait for 'busy property of the process to become nil. If SEC-PROMPT is non-nil return if secondary prompt is detected regardless of whether primary prompt was detected or not. If WAIT is non-nil wait for WAIT seconds for process output before the prompt check, default 0.002s. When FORCE-REDISPLAY is non-nil force redisplay. You better use WAIT >= 0.1 if you need FORCE-REDISPLAY to avoid excesive redisplay. If TIMEOUT is non-nil stop waiting for output after TIMEOUT seconds. (defalias 'ess-wait-for-process #[(&optional proc sec-prompt wait force-redisplay timeout) "\206\306 !\n\206 \307 \206\f\310 \311\212\312!\313=\2045\314!\203/\315\314!!\210\316\317!\205p W\205p\320\n\"\204V\205K\321\322\"?\205p\321\323\"\205p\203_\324\325!\210\310 Z\211\326V\203\326\202+\207" [proc ess-local-process-name wait timeout most-positive-fixnum elapsed get-process 0.005 float-time 0 process-status run process-buffer display-buffer error "ESS process has died unexpectedly" accept-process-output process-get sec-prompt busy redisplay force 0.3 start-time force-redisplay] 4 (#$ . 31298)]) (defalias 'inferior-ess-ordinary-filter #[(proc string) "\302 \303#\210\304 \305#\210\306 \"\210r\307!q\210 c)\207" [proc string inferior-ess-set-status t ess--if-verbose-write-process-state "ordinary-filter" inferior-ess-run-callback process-buffer] 4]) #@735 List of functions to call before sending the input string to the process. Each function gets one argument, a string containing the text to be send to the subprocess. It should return the string sent, perhaps the same string that was received, or perhaps a modified or transformed string. The functions on the list are called sequentially, and each one is given the string returned by the previous one. The string returned by the last function is the text that is actually sent to the process. You can use `add-hook' to add functions to this list either globally or locally. The hook is executed in current buffer. Before execution, the local value of this hook in the process buffer is appended to the hook from the current buffer. (defvar ess-presend-filter-functions nil (#$ . 32685)) #@37 If non-nil don't run presend hooks. (defvar ess--inhibit-presend-hooks nil (#$ . 33480)) (defalias 'ess--run-presend-hooks #[(process string) "\203 \207\306\n!\211p=?\205\307\305 \"\310\311\312\313\f!\" \"\211\203W \203W\f@\312=\203K\314\305!\211\203G \203G\f@ !\fA\211\2047)\202P\f@ !\fA\211\204$r q\210\315\316 \"\210) *\207" [ess--inhibit-presend-hooks string process pbuf functions ess-presend-filter-functions process-buffer buffer-local-value append delq t copy-sequence default-value run-hook-with-args comint-input-filter-functions] 6]) #@44 Append \n at the end of STRING if missing. (defalias 'ess--concat-new-line-maybe #[(string) "\301\302\211G\303Z\304]#\203\207\305P\207" [string string-match "\n\\'" 2 0 "\n"] 5 (#$ . 34052)]) #@176 Internal variable to control removal of empty lines during the debugging. Let-bind it to nil before calling `ess-send-string' or `ess-send-region' if no removal is necessary. (defvar ess--dbg-del-empty-p t (#$ . 34256)) #@126 Internal. Interrupt the process if interruptable? process variable is non-nil. Hide all the junk output in temporary buffer. (defalias 'inferior-ess--interrupt-subjob-maybe #[(proc) "\305\306\"\205T\305\307\"A@\310\311!\312!\313!\314\216\315\316!\210\317\306\320#\210\317\307\320#\210\317\321\320#\210\322 \"\210\323\324\"\210\325!\210\f\203L\315\326!\210\f!\210\327!\210\315\330!-\207" [proc old-buff old-filter buf cb process-get interruptable\? callbacks get-buffer-create " *ess-temp-buff*" process-filter process-buffer #[nil "\303 \"\210\304\n\"\207" [proc old-buff old-filter set-process-buffer set-process-filter] 3] ess-if-verbose-write "interrupting subjob ... start" process-put nil running-async\? set-process-buffer set-process-filter inferior-ess-ordinary-filter interrupt-process "executing interruption callback ... " ess-wait-for-process "interrupting subjob ... finished"] 5 (#$ . 34483)]) #@60 When defined this function is called by `ess-send-string'. (defvar ess-send-string-function nil (#$ . 35417)) (make-variable-buffer-local 'ess-send-string-function) #@571 ESS wrapper for `process-send-string'. Run `comint-input-filter-functions' and current buffer's and PROCESS' `ess-presend-filter-functions' hooks on the input STRING. VISIBLY can be nil, t, 'nowait or a string. If string the behavior is as with 'nowait with the differences that inserted string is VISIBLY instead of STRING (evaluated command is still STRING). In all other cases the behavior is as described in `ess-eval-visibly'. STRING need not end with \n. TYPE is a symbol indicating type of the string. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-send-string #[(process string &optional visibly message type) "\306=\203 \204\307\202\310\n \"\311\n!\210\312\n!\210\313\f!\203.\f\n  %\202\211\306=\203?\306\314 !\210)\202\201;\204J\307=\203zr\315\n!q\210\212\316\n!b\210\317\320\321\322\323\324\325;\203f\202g #\"\326\327#!\210)\330\n\331 !\"\210)\202\201\330\n\331 !\"\210 \205\211\305\332 \"*\207" [visibly inferior-ess-secondary-prompt process string ess-send-string-function message t nowait ess--run-presend-hooks inferior-ess--interrupt-subjob-maybe inferior-ess-mark-as-busy fboundp ess-eval-linewise process-buffer process-mark insert-before-markers propertize format "%s\n" replace-regexp-in-string "\n" "\n+ " font-lock-face comint-highlight-input process-send-string ess--concat-new-line-maybe "%s" type ess--inhibit-presend-hooks] 8 (#$ . 35589)]) #@60 When defined this function is called by `ess-send-region'. (defvar ess-send-region-function nil (#$ . 37021)) (make-variable-buffer-local 'ess-send-region-function) #@341 Low level ESS version of `process-send-region'. If VISIBLY call `ess-eval-linewise', else call `ess-send-string'. If MESSAGE is supplied, display it at the end. Run current buffer's and PROCESS' `ess-presend-filter-functions' hooks. TYPE is a symbol indicating type of the region. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-send-region #[(process start end &optional visibly message type) "\306 \203\307 \n \f &\207\310\n!\203\"\n \n \f &\207\311 \n{ \f %\207" [proc start end visibly message type ess-tracebug-p ess-tracebug-send-region fboundp ess-send-string ess-send-region-function process] 7 (#$ . 37193)]) #@40 Handle Tramp and system peculiarities. (defalias 'ess-load-file--normalise-file #[(file) "\304\305!\210\306!\203#\307!\211\242\n>\204\310\311\312 D\"\210\313 8)\202$ \2031\314\315\316#\2022\317!*\207" [file cl-x cl-struct-tramp-file-name-tags ess-microsoft-p require tramp tramp-tramp-file-p tramp-dissect-file-name signal wrong-type-argument tramp-file-name 6 ess-replace-in-string "[\\]" "/" abbreviate-file-name] 5 (#$ . 37855)]) (defalias 'ess-load-file--normalise-buffer #[(file) "\302!\203 \303\304\305!\"\210\306!\211\203+r q\210\307 \203!\310 \210\311\312!\210\313 )\202.\311\312!)\207" [file source-buffer ess-check-source error "Buffer %s has not been saved" buffer-name get-file-buffer buffer-modified-p save-buffer ess-force-buffer-current "Process to load into: " ess-check-modifications] 5]) #@58 When defined this function is called by `ess-load-file'. (defvar ess-load-file-function nil (#$ . 38690)) (make-variable-buffer-local 'ess-load-file-function) #@154 Load a source file into an inferior ESS process. This handles Tramp when working on a remote. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-load-file #[(&optional filename) "\305!\210\306 r\307\216\310\311!\210+\312\n!\203\n!\207\313!\314 \315\311#\316\317 \f\311#*\207" [filename save-selected-window--state ess-load-file-function file command ess-load-file--normalise-buffer internal--before-save-selected-window #[nil "\301!\207" [save-selected-window--state internal--after-save-selected-window] 2] ess-switch-to-ESS t fboundp ess-load-file--normalise-file ess-build-load-command nil ess-send-string ess-get-process] 4 (#$ . 38856) (list (or (and (memq major-mode '(ess-mode ess-julia-mode)) (buffer-file-name)) (expand-file-name (read-file-name "Load source file: " nil nil t))))]) #@66 Display a list of recent inputs entered into the current buffer. (defalias 'ess-msg-and-comint-dynamic-list-input-ring #[nil "\300\301!\210\302 \207" [message "C-c C-l no longer loads a source file in [iESS], rather use C-c M-l instead" comint-dynamic-list-input-ring] 2 (#$ . 39686) nil]) (defalias 'ess-command--normalise-proc #[(proc no-prompt-check) "\203 \204\f\303!\202\304 !\n\204#\305\306\"\203#\307\310!\210)\207" [proc ess-local-process-name no-prompt-check process-name ess-get-process process-get busy user-error "ESS process not ready. Finish your command before trying again"] 3]) #@56 When defined this function is called by `ess-command'. (defvar ess-command-function nil (#$ . 40302)) (make-variable-buffer-local 'ess-command-function) #@829 Send the ESS process command CMD and delete the output from the ESS process buffer. If an optional second argument OUT-BUFFER exists save the output in that buffer. OUT-BUFFER is erased before use. CMD should have a terminating newline. Guarantees that the value of `.Last.value' will be preserved. SLEEP is deprecated and no longer has any effect. WAIT and FORCE-REDISPLAY are as in `ess-wait-for-process' and are passed to `ess-wait-for-process'. PROC should be a process, if nil the process name is taken from `ess-local-process-name'. This command doesn't set 'last-eval process variable. Note: for critical, or error prone code you should consider wrapping the code into: local({ olderr <- options(error=NULL) on.exit(options(olderr)) ... }) Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-command #[(cmd &optional out-buffer sleep no-prompt-check wait proc force-redisplay) "\306!\203 \n \f  &\207\n\206\307\310!\311\f\"r\312!q\210!\312!\313!\314\315!!\"#$%\316\317\320 \"!\210\321\216\322\n\"\210\323\324\"\210r\nq\210%!\325&\326 \210\315!e\325\223\210\327!\210\330 \"\210\f\203\202\331\332!\210\202\227\333\325  $\210\334p!\210db\210\335 d|\210\316\336!\210.\n*\207" [ess-command-function cmd out-buffer sleep no-prompt-check wait fboundp get-buffer-create " *ess-command-output*" ess-command--normalise-proc process-buffer process-filter marker-position process-mark ess-if-verbose-write format "(ess-command %s ..)" #[nil "\304\305!\210\306 \"\210\307\n\"\210\310! \311\223\207" [proc oldpb oldpf oldpm ess-if-verbose-write " .. exiting{ess-command}\n" set-process-buffer set-process-filter process-mark nil] 3] set-process-buffer set-process-filter inferior-ess-ordinary-filter nil erase-buffer inferior-ess-mark-as-busy process-send-string sleep-for 0.02 ess-wait-for-process ess-mpi-handle-messages point-at-bol " .. ok{ess-command}" proc force-redisplay inferior-ess-primary-prompt oldpm oldpf oldpb primary-prompt buffer-read-only] 8 (#$ . 40462)]) #@154 Like `ess-command' but expects COM to print TRUE or FALSE. If TRUE (or true) is found return non-nil otherwise nil. Example (ess-boolean-command "2>1 ") (defalias 'ess-boolean-command #[(com &optional buf wait) "r\304 \305\211\n%q\210eb\210\306\307\310\305\306#*\207" [com buf wait case-fold-search ess-command nil t re-search-forward "true"] 6 (#$ . 42531)]) #@40 Returns the output of COM as a string. (defalias 'ess-string-command #[(com &optional buf wait) "r\303 \304\211\n%q\210\305 \210ed{)\207" [com buf wait ess-command nil ess-kill-last-line] 6 (#$ . 42899)]) #@582 Asynchronous version of `ess-command'. COM, BUF, WAIT and PROC are as in `ess-command'. CALLBACK is a function of two arguments (PROC STRING) to run after the successful execution. When INTERRUPT-CALLBACK is non-nil, user evaluation can interrupt the job. INTERRUPT-CALLBACK should be either t or a function of one argument (PROC) to be called on interruption. NOTE: Currently this function should be used only for background jobs like caching. ESS tries to suppress any output from the asynchronous command, but long output of COM will most likely end up in user's main buffer. (defalias 'ess-async-command #[(com &optional buf proc callback interrupt-callback) "\206\306 !\211\203\307!\310=\204\311\312 \"\202[\313\314\"\204)\313\315\"\2030\311\316 \"\202[\n\317=\2038\320\321\322 \323B\nD#\210\321\324\n\205J\317#\210\321\315\317#\210\325\f \326\327\330&)\207" [proc ess-local-process-name interrupt-callback callback com buf get-process process-status run error "Process %s is dead" process-get busy running-async\? "Process %s is busy or already running an async command" t #[(proc) "\300\207" [nil] 1] process-put callbacks suppress-output interruptable\? ess-command nil no-prompt-check 0.01] 8 (#$ . 43112)]) #@605 Delayed asynchronous ess-command. COM and BUF are as in `ess-command'. DELAY is a number of idle seconds to wait before starting the execution of the COM. On interruption (by user's evaluation) ESS tries to rerun the job after next DELAY seconds, and the whole process repeats itself until the command manages to run completely. DELAY defaults to `ess-idle-timer-interval' + 3 seconds. You should always provide PROC for delayed evaluation, as the current process might change, leading to unpredictable consequences. This function is a wrapper of `ess-async-command' with an explicit interrupt-callback. (defalias 'ess-async-command-delayed #[(com &optional buf proc callback delay) "\204\306\307!\210\310\311!\n\206 \312\\\313\314\315\f \300\n\257E\313\316\317\320\321D\322BB\323\324\325\326BB\325\327BBE\330\n\316\331\f \n\257 E\332\f \333D\257FE\334\n\316#,\207" [proc timer delay ess-idle-timer-interval com buf error "You must provide PROC argument to ess-async-command-delayed" make-symbol "timer" 3 lambda (proc) ess-async-command-delayed nil when eq process-status ('run) if or process-get ('busy) ('running-async\?) run-with-timer 'ess-async-command-delayed ess-async-command quote run-with-idle-timer callback int-cb com-fun] 15 (#$ . 44361)]) #@62 When defined this function is called by `ess-eval-linewise'. (defvar ess-eval-linewise-function nil (#$ . 45649)) (make-variable-buffer-local 'ess-eval-linewise-function) #@906 Evaluate TEXT in the ESS process buffer as if typed in w/o tabs. Waits for prompt after each line of input, so won't break on large texts. If optional second arg INVISIBLY is non-nil, don't echo commands. If it is a string, just include that string. If optional third arg EOB is non-nil go to end of ESS process buffer after evaluation. If optional 4th arg EVEN-EMPTY is non-nil, also send empty text (e.g. an empty line). If 5th arg WAIT-LAST-PROMPT is non-nil, also wait for the prompt after the last line; if 6th arg SLEEP-SEC is a number, ESS will call '(\[sleep-for] SLEEP-SEC) at the end of this function. If the 7th arg WAIT-SEC is set, it will be used instead of the default .001s and be passed to \[ess-wait-for-process]. Run `comint-input-filter-functions' and `ess-presend-filter-functions' of the associated PROCESS on the TEXT. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-eval-linewise #[(text &optional invisibly eob even-empty wait-last-prompt sleep-sec wait-sec) "\247\204\306\307\310!\210\311 !\203! \n \f -.&\210\202\312/p0\3131!2\3142!3\3153\316\"4\317\3202\n\"!r3q\210\321\n\322\323\324\316%\325\3262!!b\210 ;\203c\327\330 \331Q!\210\nG\332V\204n \203\341\312\333\334\n\"5\nG\332U\203\201\335\202\210\n\3325O\335P\n\211G5T^\312O\325\3262!!b\2104\203\252\3364\3262!\"\210 \204\276\321\337\340#c\210\3262!`\312\223\210\3412!\210\3422\"\210*\nG\332V\204\327-\203c\3432\316#\210\202c\f\203\355\344\3453!\312\"\210\325\3262!!b\2104\203\3464!6r\347\216\3506@\351\"\210`b\210\352\3537Z!\210+..\247\205!\354.!\207" [wait-sec ess-eval-linewise-function text invisibly eob even-empty 0.001 ess-force-buffer-current "Process to use: " fboundp nil ess-get-process process-buffer get-buffer-window t ess--concat-new-line-maybe ess--run-presend-hooks propertize field input front-sticky marker-position process-mark insert-before-markers "*** " " ***\n" 0 string-match "\n\\|$" "\n" set-window-point font-lock-face comint-highlight-input inferior-ess-mark-as-busy process-send-string ess-wait-for-process ess-show-buffer buffer-name internal--before-with-selected-window #[nil "\301!\207" [save-selected-window--state internal--after-with-selected-window] 2] select-window norecord recenter -1 sleep-for wait-last-prompt sleep-sec deactivate-mark cbuffer ess-current-process-name sprocess sbuffer win pos save-selected-window--state scroll-margin] 8 (#$ . 45827)]) #@132 Clean the region for evaluation. This trims newlines at beginning and end of the region because they might throw off the debugger. (defalias 'ess-eval-region--normalise-region #[nil "\212b\210\303\304w\210` \204\305\n\"\210\nb\210\303\304x\210`\211)\207" [start mark-active end "\n " nil ess-blink-region] 3 (#$ . 48310)]) #@318 Send the region from START to END to the inferior ESS process. TOGGLE switches the meaning of `ess-eval-visibly'. If given, MESSAGE is `message'ed. TYPE is a symbol indicating what type of region this is. If command `rectangle-mark-mode' is active, send the lines of the rectangle separately to the inferior process. (defalias 'ess-eval-region #[(start end toggle &optional message type) "\306\307!\210\310\311!\210\204\312\313\300!J!\210\314\301!\2034 \2034\315\316!\2034\316\317 `^\317 `]\"\320\321\n\")\207\322 \f %\207" [ess-local-customize-alist rectangle-mark-mode reclines start end toggle ess-force-buffer-current "Process to use: " message "Starting evaluation..." ess-setq-vars-local ess-get-process-variable boundp fboundp extract-rectangle-bounds mark mapc #[(l) "\304@A \n %\207" [l toggle message type ess--eval-region] 6] ess--eval-region type] 6 (#$ . 48647) "r\nP"]) #@106 Helper function for `ess-eval-region', which see. START, END, TOGGLE, MESSAGE, and TYPE described there. (defalias 'ess--eval-region #[(start end toggle &optional message type) "\306 \210\203\f ?\202 \n\206\307\310 \212\311  \f\n\f&\210, \203-\312 \210  D\207" [toggle ess-eval-visibly message proc visibly start ess-eval-region--normalise-region "Eval region" ess-get-process ess-send-region ess-deactivate-mark end type ess-eval-deactivate-mark] 7 (#$ . 49551)]) #@101 Send the current buffer to the inferior ESS process. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-buffer #[(vis) "\301ed\302\303%\207" [vis ess-eval-region "Eval buffer" buffer] 6 (#$ . 50039) "P"]) #@113 Send region from beginning to point to the inferior ESS process. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-buffer-from-beg-to-here #[(vis) "\301e`\302$\207" [vis ess-eval-region "Eval buffer till point"] 5 (#$ . 50268) "P"]) #@117 Send region from point to end of buffer to the inferior ESS process. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-buffer-from-here-to-end #[(vis) "\301`d\302$\207" [vis ess-eval-region "Eval buffer till end"] 5 (#$ . 50526) "P"]) #@309 Send the current function to the inferior ESS process. Prefix argument VIS toggles the meaning of `ess-eval-visibly'. If NO-ERROR is non-nil and the function was successfully evaluated, return '(beg end) representing the beginning and end of the current function, otherwise (in case of an error) return nil. (defalias 'ess-eval-function #[(vis &optional no-error) "\306\307!\210\212\3101\311y\210\312\313!0\210\202\210\314\315\"\211\205u @ A@\316\f!\nb\210\315v\210\317 \320\321\322\206<\323\324\325#\"\203M?\202O\326\n \"\210\327 \203h\330 \n %\210\202r\331 \n %\210 .*\207" [no-error beg-end beg end ess-local-process-name proc ess-force-buffer-current "Process to use: " (error) -1 ess-next-code-line 1 ess-end-of-function nil get-process ess-read-object-name-default format "Eval function %s" propertize "???" face font-lock-function-name-face ess-blink-region ess-tracebug-p ess-tracebug-send-function ess-send-region name msg vis ess-eval-visibly visibly] 7 (#$ . 50786) "P"]) #@129 Send the current paragraph to the inferior ESS process. Prefix arg VIS toggles visibility of ess-code as for `ess-eval-region'. (defalias 'ess-eval-paragraph #[(vis) "\212\302 \210\303\304!\210`\305 \210\306\304!\210\307` \310$*\207" [end vis forward-paragraph ess-skip-blanks-backward multiline backward-paragraph ess-skip-blanks-forward ess-eval-region "Eval paragraph"] 5 (#$ . 51814) "P"]) #@192 Send the current function if \[point] is inside one. Otherwise send the current paragraph to the inferior ESS process. Prefix arg VIS toggles visibility of ess-code as for `ess-eval-region'. (defalias 'ess-eval-function-or-paragraph #[(vis) "\302\303\"\211?\205 \304!)\207" [vis beg-end ess-eval-function no-error ess-eval-paragraph] 4 (#$ . 52217) "P"]) #@192 Send the current function if \[point] is inside one. Otherwise send the current paragraph to the inferior ESS process. Prefix arg VIS toggles visibility of ess-code as for `ess-eval-region'. (defalias 'ess-eval-function-or-paragraph-and-step #[(vis) "\3031\f\304\305\"0\202\210\306\211\204\307!\202* A@b\210\n\203'\310y\202*\311\310!)\207" [vis beg-end ess-eval-empty (error) ess-eval-function no-error nil ess-eval-paragraph-and-step 1 ess-next-code-line] 4 (#$ . 52583) "P"]) #@303 Send the region, function, or paragraph depending on context. Send the region if it is active. If not, send function if `point' is inside one, otherwise the current paragraph. Treats rectangular regions as `ess-eval-region' does. Prefix arg VIS toggles visibility of ess-code as for `ess-eval-region'. (defalias 'ess-eval-region-or-function-or-paragraph #[(vis) "\301 \203 \302\303 \304 #\207\305!\207" [vis use-region-p ess-eval-region region-beginning region-end ess-eval-function-or-paragraph] 4 (#$ . 53079) "P"]) #@393 Send the region, function, or paragraph depending on context. Send the region if it is active. If not, send function if `point' is inside one, otherwise the current paragraph. Treats rectangular regions as `ess-eval-region' does. After evaluation step to the next code line or to the end of region if region was active. Prefix arg VIS toggles visibility of ess-code as for `ess-eval-region'. (defalias 'ess-eval-region-or-function-or-paragraph-and-step #[(vis) "\302 \203\303 \304\305  #\210b)\207\306 !\207" [end vis use-region-p region-end ess-eval-region region-beginning ess-eval-function-or-paragraph-and-step] 4 (#$ . 53607) "P"]) #@265 Evaluate region if active, otherwise the current line and step. Prefix arg VIS toggles visibility of ess-code when evaluating the region (as for `ess-eval-region') and has no effect for evaluation of the line. Treats rectangular regions as `ess-eval-region' does. (defalias 'ess-eval-region-or-line-and-step #[(&optional vis) "\301 \203 \302\303 \304 #\207\305 \207" [vis use-region-p ess-eval-region region-beginning region-end ess-eval-line-and-step] 4 (#$ . 54256) "P"]) #@238 Evaluate region if active, otherwise the current line and step. Evaluation is done visibly. Note that when inside a package and namespaced evaluation is in place (see `ess-r-set-evaluation-env') evaluation of multiline input will fail. (defalias 'ess-eval-region-or-line-visibly-and-step #[nil "\301 \210\302\303 !\210\304\305 )\207" [ess-eval-visibly ess-force-buffer-current ess-show-buffer ess-get-process-buffer t ess-eval-region-or-line-and-step] 2 (#$ . 54739) nil]) #@99 Send the current line to the inferior ESS process. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-line #[(&optional vis) "\304 \305 \306\307 {\"\310 \n$+\207" [beg end msg vis point-at-bol point-at-eol format "Loading line: %s" ess-eval-region] 5 (#$ . 55220) "P"]) #@56 Evaluate the current line and step to the "next" line. (defalias 'ess-eval-line-and-step #[(&optional vis) "\301!\210\302\303!\207" [vis ess-eval-line ess-next-code-line 1] 2 (#$ . 55518) "P"]) #@466 Evaluate the current line visibly and step to the "next" line. If SIMPLE-NEXT is non-nil, possibly via prefix arg, first skip empty and commented lines. If 2nd arg EVEN-EMPTY [prefix as well], also send empty lines. When the variable `ess-eval-empty' is non-nil both SIMPLE-NEXT and EVEN-EMPTY are interpreted as true. Note that when inside a package and namespaced evaluation is in place (see `ess-r-set-evaluation-env') evaluation of multiline input will fail. (defalias 'ess-eval-line-visibly-and-step #[(&optional simple-next even-empty) "\304 \210\305\306 !\210\307\310 \210) \204\n\204 \203\311y\207\312\311!\207" [ess-eval-visibly simple-next ess-eval-empty even-empty ess-force-buffer-current ess-show-buffer ess-get-process-buffer t ess-eval-line 1 ess-next-code-line] 2 (#$ . 55720) "P\nP"]) #@103 Evaluate the current line invisibly and step to the next line. Evaluate all comments and empty lines. (defalias 'ess-eval-line-invisibly-and-step #[nil "\301\302 )\207" [ess-eval-visibly nil ess-eval-line-and-step] 1 (#$ . 56538) nil]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias ess-eval-line-and-step-invisibly ess-eval-line-invisibly-and-step nil make-obsolete "18.10"] 4) #@284 Move ARG lines of code forward (backward if ARG is negative). Skips past all empty and comment lines. Default for ARG is 1. Don't skip the last empty and comment lines in the buffer unless SKIP-TO-EOB is non-nil. On success, return 0. Otherwise, go as far as possible and return -1. (defalias 'ess-next-code-line #[(&optional arg skip-to-eob) "\204\306\307 \210`\310\310V\203\306\202\311\310U\204l\n\310U\203l y\312\313!\204A\n\310U\203N\314\315!\203N y\211\202/\313 \210\307 \210\316 \317 _!\210\f\204X\314 !\204_ Z\202g b\210\310\306y\210`\202 b\210\n+\207" [arg inc n pos skip-to-eob ess-no-skip-regexp 1 beginning-of-line 0 -1 fboundp comment-beginning looking-at "\\s-*\\($\\|\\s<\\)" forward-comment buffer-size] 5 (#$ . 56944) "p"]) #@213 Send region from START to END to the inferior process buffer. START and END default to the current region, and rectangular regions are treated as `ess-eval-region'. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-region-and-go #[(start end vis) "\303 \n#\210\304\305!\207" [start end vis ess-eval-region ess-switch-to-ESS t] 4 (#$ . 57721) "r\nP"]) #@124 Send the current buffer to the inferior S and switch to the process buffer. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-buffer-and-go #[(vis) "\301!\210\302\303!\207" [vis ess-eval-buffer ess-switch-to-ESS t] 2 (#$ . 58097) "P"]) #@119 Send the current function, then switch to the inferior process buffer. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-function-and-go #[(vis) "\301!\210\302\303!\207" [vis ess-eval-function ess-switch-to-ESS t] 2 (#$ . 58358) "P"]) #@115 Send the current line, then switch to the inferior process buffer. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-line-and-go #[(vis) "\301!\210\302\303!\207" [vis ess-eval-line ess-switch-to-ESS t] 2 (#$ . 58618) "P"]) #@120 Send the current paragraph, then switch to the inferior process buffer. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-paragraph-and-go #[(vis) "\301!\210\302\303!\207" [vis ess-eval-paragraph ess-switch-to-ESS t] 2 (#$ . 58866) "P"]) #@162 Evaluate the current paragraph and move point to the next line. If not inside a paragraph, evaluate the next one. VIS has same meaning as for `ess-eval-region'. (defalias 'ess-eval-paragraph-and-step #[(vis) "\303!\211A@b\210\n\203\304y\202\305\304!)\207" [vis beg-end ess-eval-empty ess-eval-paragraph 1 ess-next-code-line] 3 (#$ . 59129) "P"]) #@33 Keymap for `inferior-ess' mode. (defvar inferior-ess-mode-map (byte-code "\303 \304 \"\210\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\305\316\317#\210\305\320\321#\210\305\322\323#\210\305\324\325#\210\305\326\327#\210\305\330\331#\210\305\332\333#\210\305\334\335#\210\305\336\337#\210\305\340\341#\210\305\342\343#\210\305\344\345#\210\305\346\347#\210\305\350\351#\210\305\352\353#\210\305\354\355#\210\305\356\357#\210\305\324\360#\210\305\361\362#\210\305\363\364#\210\n\203\242\305\n\365#\210)\207" [map comint-mode-map ess-smart-S-assign-key make-sparse-keymap set-keymap-parent define-key "" ess-yank " " inferior-ess-send-input "" comint-bol "\354" ess-load-file "\f" ess-msg-and-comint-dynamic-list-input-ring "`" ess-show-traceback [(control 99) 126] ess-show-call-stack "" ess-dump-object-into-edit-buffer "" ess-display-help-on-object "" ess-quit "" ess-execute-search "" ess-execute-objects "" ess-abort "" ess-switch-to-inferior-or-script-buffer "" delete-char " " completion-at-point " " ess-complete-object-name-deprecated "\277" ess-list-object-completions " " ess-request-a-process "," ess-smart-comma [3 67108925] ess-cycle-assign ess-doc-map "" ess-extra-map "" ess-dev-map ess-smart-S-assign] 4) (#$ . 59487)) #@33 Menu for use in Inferior S mode (defvar inferior-ess-mode-menu nil (#$ . 60805)) (easy-menu-do-define 'inferior-ess-mode-menu inferior-ess-mode-map "Menu for use in Inferior S mode" '("iESS" ["What is this? (beta)" ess-mouse-me t] ["Quit" ess-quit t] ["Copy command" comint-copy-old-input t] ["Send command" inferior-ess-send-input t] ["Switch to Script Buffer" ess-switch-to-inferior-or-script-buffer t] ["Get help on S object" ess-display-help-on-object t] "------" ("Process" ["Process Echoes" (lambda nil (interactive) (setq comint-process-echoes (not comint-process-echoes))) :active t :style toggle :selected comint-process-echoes] ("Eval visibly " :filter ess--generate-eval-visibly-submenu)) "------" ("Utils" ["Attach directory" ess-execute-attach t] ["Display object list" ess-execute-objects t] ["Display search list" ess-execute-search t] ["Edit S Object" ess-dump-object-into-edit-buffer t] ["Enter S command" ess-execute t] ["Jump to Error" ess-parse-errors t] ["Load source file" ess-load-file t] ["Resynch S completions" ess-resynch t]) "------" ("start-dev" :visible nil) ("end-dev" :visible nil) "------" ("Font Lock" :active inferior-ess-font-lock-keywords :filter ess--generate-font-lock-submenu) "------" ["Describe" describe-mode t] ["Send bug report" ess-submit-bug-report t] ["About" (ess-goto-info "Entering Commands") t])) #@31 Keymap used in `ess-execute'. (defvar ess-mode-minibuffer-map (byte-code "\302 \303 \"\210\304\305\306#\210\304\307\306#\210\304\310\311#\210\304\312\313#\210)\207" [map minibuffer-local-map make-sparse-keymap set-keymap-parent define-key " " ess-complete-object-name "\211" "" ess-execute-search "" ess-execute-objects] 4) (#$ . 62160)) #@2637 Major mode for interacting with an inferior ESS process. Runs an S interactive job as a subprocess of Emacs, with I/O through an Emacs buffer. Variable `inferior-ess-program' controls which S is run. Commands are sent to the ESS process by typing them, and pressing \[inferior-ess-send-input]. Pressing \[complete-dynamic-complete] completes known object names or filenames, as appropriate. Other keybindings for this mode are: \{inferior-ess-mode-map} When editing S objects, the use of \[ess-load-file] is advocated. `ess-load-file' keeps source files (if `ess-keep-dump-files' is non-nil) in the directory specified by `ess-source-directory', with the filename chosen according to `ess-dump-filename-template'. When a file is loaded, `ess-mode' parses error messages and jumps to the appropriate file if errors occur. The ess-eval- commands do not do this. Customization: Entry to this mode runs the hooks on `comint-mode-hook' and `inferior-ess-mode-hook' (in that order). You can send text to the inferior ESS process from other buffers containing source code. The key bindings of these commands can be found by typing \[describe-mode]. `ess-eval-region' sends the current region to the ESS process. `ess-eval-buffer' sends the current buffer to the ESS process. `ess-eval-function' sends the current function to the ESS process. `ess-eval-line' sends the current line to the ESS process. `ess-beginning-of-function' and `ess-end-of-function' move the point to the beginning and end of the current S function. `ess-switch-to-ESS' switches the current buffer to the ESS process buffer. `ess-switch-to-end-of-ESS' switches the current buffer to the ESS process buffer and puts point at the end of it. `ess-eval-region-and-go', `ess-eval-buffer-and-go', `ess-eval-function-and-go', and `ess-eval-line-and-go' switch to the S process buffer after sending their text. `ess-dump-object-into-edit-buffer' moves an S object into a temporary file and buffer for editing `ess-load-file' sources a file of commands to the ESS process. Commands: Return after the end of the process' output sends the text from the end of process to point. Return before the end of the process' output copies the sexp ending at point to the end of the process' output, and sends it. Delete converts tabs to spaces as it moves back. C-M-q does Tab on each line starting within following expression. Paragraphs are separated only by blank lines. Crosshatches start comments. If you accidentally suspend your process, use \[comint-continue-subjob] to continue it. (defalias 'inferior-ess-mode #[nil "\306\300!\210\307\310 \210)\306\301!\210\311\306\302!\210\307\312 !\210\306\305!\210\f\313\235?<\314\235\2033=\307=\2043\315>\203?\306\316!\210\307?\204T\317@A\205M\320A\321\260?\322?PB\323C\324\325\326\315\327$\210\330D\331E\332F\333G!\210H\206yI\211J\203\204\334J!\210)\335\336\337p\f %!\210\f\340\230\203\232\341\342\343\"\210K\203\242\315K\344\345\346\307#\210\324\345\347\315\327$\210\324\345\350\315\327$\210\306\351!\210\352\353B)\307L\306\354!\210\315,\306\355!\210@\356P-\306\357!\210\360/\361\362!\203\350\306\363!\210M3\306\364!\210\324\364\365\"\210\366\367!\210\335\336\370p\f %!\210\371\372\373!NP!\207" [delay-mode-hooks comint-input-sender process-connection-type ess-customize-alist ess-language comint-process-echoes make-local-variable t comint-mode inferior-ess-input-sender ess-setq-vars-local ("SAS" "XLS" "OMG" "julia") ("R") nil inhibit-field-text-motion "\\(" "\\|" "\\)" "^" inferior-ess-get-old-input add-hook comint-input-filter-functions ess-search-path-tracker local inferior-ess-mode "iESS" (" [" ess--mode-line-process-indicator ess--local-mode-line-process-indicator "]: %s") use-local-map set-syntax-table ess-write-to-dribble-buffer format "(i-ess 1): buf=%s, lang=%s, comint..echo=%s, comint..sender=%s,\n" "S" local-set-key "\215" ess-dirs remove-hook completion-at-point-functions comint-completion-at-point comint-c-a-p-replace-by-expanded-history ess-filename-completion comint-completion-addsuffix "/" "" indent-tabs-mode paragraph-start "\\|\f" paragraph-separate "\f" featurep jit-lock jit-lock-chunk-size kill-buffer-hook ess-kill-buffer-function run-mode-hooks inferior-ess-mode-hook "(i-ess end): buf=%s, lang=%s, comint..echo=%s, comint..sender=%s,\n" message substitute-command-keys "Type \\[describe-mode] for help on ESS version " ess-dialect ess-eval-visibly comint-use-prompt-regexp inferior-ess-prompt inferior-ess-primary-prompt inferior-ess-secondary-prompt comint-prompt-regexp comint-get-old-input major-mode mode-name mode-line-process inferior-ess-mode-map inferior-ess-mode-syntax-table ess-mode-syntax-table inf-syntax-table font-lock-keywords-only comint-input-autoexpand inferior-ess-jit-lock-chunk-size ess-version] 8 (#$ . 62517) nil]) (defalias 'inferior-ess-input-sender #[(proc string) "\305!\210\306\n\203\307 \306\211\f$\202\310 \")\207" [proc comint-input-filter-functions comint-process-echoes string ess-eval-empty inferior-ess--interrupt-subjob-maybe nil ess-eval-linewise ess-send-string] 5]) #@70 Reg(ular) Ex(pression) of help(.) arguments. MUST: 2nd \(.\) = arg. (defvar ess-help-arg-regexp "\\(['\"]?\\)\\([^,=)'\"]*\\)\\1" (#$ . 67720)) #@59 Sends the command on the current line to the ESS process. (defalias 'inferior-ess-send-input #[nil "\301\302!\210\303\304!\204\305\306\307\"\210\310 \210\307\211\207" [ess-object-list run-hooks ess-send-input-hook ess-process-get busy ess-process-put prev-prompt nil comint-send-input] 3 (#$ . 67871) nil]) #@199 Move point to the begining of input skiping all continuation lines. If in the output field, goes to the begining of previous input field. Note: `inferior-ess-secondary-prompt' should match exactly. (defalias 'inferior-ess--goto-input-start:field #[nil "\303 b\210`eU\204\304`!\305=\203\303\306\307\"b\210\202\303`\307\"\310P\211\205K\311\n\312\"\305=\203:\313 \314\n!\"\202;\307\205K\nb\210\315\n\312\"\211\204(\306*\207" [inferior-ess-secondary-prompt secondary-prompt pos field-beginning field-at-pos output nil t "^" get-text-property field string-match field-string-no-properties previous-single-property-change] 5 (#$ . 68188)]) #@201 Move point to the end of input skiping all continuation lines. If in the output field, goes to the begining of previous input field. NOTE: to be used only with fields, see `comint-use-prompt-regexp'. (defalias 'inferior-ess--goto-input-end:field #[nil "\303 b\210`\304P\211\2051\305\n\306\"\307=\203 \310 \311\n!\"\202!\312\2051\nb\210\313\n\306\"\211\204\314*\207" [inferior-ess-secondary-prompt secondary-prompt pos field-end "^" get-text-property field output string-match field-string-no-properties t next-single-property-change nil] 5 (#$ . 68844)]) #@61 Return the ESS command surrounding point (use with fields). (defalias 'inferior-ess--get-old-input:field #[nil "\212\304`!\305=\203\306\307!\203\310\311!\202b\312\202b\313 \210\314`!\315`\316\"\317P\n\203`\320\n\316\"\321=\203A \322\314\n!Q\211\202T\320\n\316\"\305=\203S\323 \314\n!\"\202T\324\203`\315\n\316\"\211\204- +)\207" [inferior-ess-secondary-prompt secondary-prompt pos command field-at-pos output called-interactively-p any error "No command on this line" "" inferior-ess--goto-input-start:field field-string-no-properties next-single-property-change field "^" get-text-property input "\n" string-match t] 5 (#$ . 69415)]) #@133 Move point to the begining of input skiping all continuation lines. If in the output field, goes to the begining of previous input. (defalias 'inferior-ess--goto-input-start:regexp #[nil "\302 \210\303!\204\304\305P\306\307#\210 \203(\303 !\203(\310y\310V\203(\303 !\204\303!\2042\311\312!\210\313 \207" [inferior-ess-prompt inferior-ess-secondary-prompt beginning-of-line looking-at re-search-backward "^" nil t -1 error "Beggining of input not found" comint-skip-prompt] 4 (#$ . 70076)]) #@56 Return the ESS command surrounding point (use regexp). (defalias 'inferior-ess--get-old-input:regexp #[nil "\212\305\306\307 \210\n\203\310\n!\203\311 \210\307 \210\310 !\203P\312 \210\313`\314 \"\n\203G\315y\210\310\n!\203G\316\n\314 \305#\210 \317\313`\314 \"Q\202+\320y\210` \202U\321\322!\210\323+\207" [inhibit-field-text-motion command inferior-ess-secondary-prompt inferior-ess-prompt ess-temp-point t nil beginning-of-line looking-at inferior-ess--goto-input-start:regexp comint-skip-prompt buffer-substring-no-properties point-at-eol 1 re-search-forward "\n" -1 message "No command at this point" ""] 5 (#$ . 70583)]) #@43 Return the ESS command surrounding point. (defalias 'inferior-ess-get-old-input #[nil "\203\301 \207\302 \207" [comint-use-prompt-regexp inferior-ess--get-old-input:regexp inferior-ess--get-old-input:field] 1 (#$ . 71230)]) #@352 Send the objects() command to the ESS process. By default, gives the objects at position 1. A prefix argument toggles the meaning of `ess-execute-in-process-buffer'. A prefix argument of 2 or more means get objects for that position. A negative prefix argument gets the objects for that position and toggles `ess-execute-in-process-buffer' as well. (defalias 'ess-execute-objects #[(posn) "\306 \210<\203\203\307\202\310\202\311!\211\312W\203# [\202$  \312W\313\f\n\314#\315\316\n!\317\nS\320 8\321\260\322 \323$-\207" [posn num-arg the-posn invert inferior-ess-objects-command the-command ess-make-buffer-current -1 1 prefix-numeric-value 0 format ".*" ">>> Position " number-to-string " (" ess-search-list ")\n" ess-execute "S objects" the-message] 6 (#$ . 71464) "P"]) #@102 Send the `inferior-ess-search-list-command' command to the `ess-language' process. [search(..) in S] (defalias 'ess-execute-search #[(invert) "\302 \303#\207" [inferior-ess-search-list-command invert ess-execute "S search list"] 4 (#$ . 72268) "P"]) #@223 Attach a directory in the `ess-language' process with the attach() command. When used interactively, user is prompted for DIR to attach and prefix argument is used for POSN (or 2, if absent.) Doesn't work for data frames. (defalias 'ess-execute-attach #[(dir &optional posn) "\302\303\304\305!!\306 \205\307\310\311 !!P\312\260\313\"\210\314\315\316\"\207" [dir posn ess-execute "attach(\"" directory-file-name expand-file-name "\"" "," number-to-string prefix-numeric-value ")" buffer ess-process-put sp-for-help-changed\? t] 8 (#$ . 72526) "Attach directory: \nP"]) #@243 Cause S to set the "width" option to 1 less than the window width. Also sets the "length" option to 99999. When INVISIBLY is non-nil, don't echo to R subprocess. This is a good thing to put in `ess-r-post-run-hook' or `ess-S+-post-run-hook'. (defalias 'ess-execute-screen-options #[(&optional invisibly) "\204 \306\307 \"\207\310 \311\n8\n@Z\312\313!\203\"\314 \313 \245!\202K\315 \203G\316\317 !\320 \245\321\322\323!!\324H\211\f\245\314 \245!S+\202K\325 \311Z\326\"\203`\327!\202h\330\331\211\211\332%,\207" [ess-execute-screen-options-command ess-dialect wedges wwidth r charh message "Not implemented for '%s'" window-inside-pixel-edges 2 fboundp default-font-width floor display-graphic-p float frame-char-height frame-char-width font-info face-font default 3 window-width format ess-command ess-eval-linewise nil wait-prompt charw nchars command invisibly] 7 (#$ . 73105) nil]) #@453 Send a command to the ESS process. A newline is automatically added to COMMAND. Prefix arg (or second arg INVERT) means invert the meaning of `ess-execute-in-process-buffer'. If INVERT is 'buffer, output is forced to go to the process buffer. If the output is going to a buffer, name it *BUFF*. This buffer is erased before use. Optional fourth arg MESSAGE is text to print at the top of the buffer (defaults to the command if BUFF is not given.) (defalias 'ess-execute #[(command &optional invert buff message) "\306 \210\307P\310 \206\f\311\310Q\n\203\n\312=\206 ?\202 \f\203-\313!\202]\314 !\315 \"\210r q\210eb\210\203Jc\210\202T \204T\316\261\210)\317 !)+\207" [command buff invert ess-execute-in-process-buffer in-pbuff buff-name ess-make-buffer-current "\n" "*" "ess-output" buffer ess-eval-linewise ess-create-temp-buffer ess-command "> " ess-display-temp-buffer the-command message ess-current-process-name ess-local-process-name] 4 (#$ . 74025) (list (let ((enable-recursive-minibuffers t) (proc-name (progn (ess-force-buffer-current) ess-local-process-name))) (save-current-buffer (set-buffer (get-buffer " *Minibuf-1*")) (setq ess-local-process-name proc-name)) (read-from-minibuffer "Execute> " nil ess-mode-minibuffer-map)) current-prefix-arg)]) #@53 When defined this function is called by `ess-quit'. (defvar ess-quit-function nil (#$ . 75329)) (make-variable-buffer-local 'ess-quit-function) #@152 Issue an exiting command to the inferior process, additionally also running \[ess-cleanup]. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-quit #[(&rest args) "\304\305\306\307#\210\310 \210\311 \210\312!\203\313 \"\207\314 \315 \210\316\317\n!!b\210 c\210\320\n \")\207" [ess-quit-function args proc inferior-ess-exit-command ess-force-buffer-current "Process to quit: " nil no-autostart ess-interrupt ess-make-buffer-current fboundp apply ess-get-process ess-cleanup marker-position process-mark process-send-string] 4 (#$ . 75480) nil]) #@88 Interrupt the inferior process. This sends an interrupt and quits a debugging session. (defalias 'ess-interrupt #[nil "\303 \210\304 \305 \"\210\n\306>\204\307\310\311\"\210\312!\210\313 \205%\314 \210\312!)\207" [proc comint-ptyp system-type inferior-ess-force ess-get-process interrupt-process (gnu/linux darwin) process-send-string nil "\n" ess-wait-for-process ess-debug-active-p ess-debug-command-quit] 3 (#$ . 76058) nil]) #@132 Kill the ESS process, without executing .Last or terminating devices. If you want to finish your session, use \[ess-quit] instead. (defalias 'ess-abort #[nil "\300 \210\301\302!\210\303\304!\210\305\306!\203\307 \207\301\310!\207" [ding message "WARNING: \\[inferior-ess-exit-command] will not be executed and graphics devices won't finish properly!" sit-for 2 y-or-n-p "Still abort? " comint-quit-subjob "Good move."] 2 (#$ . 76501) nil]) #@260 Possibly kill or offer to kill, depending on the value of `ess-S-quit-kill-buffers-p', all buffers associated with this ESS process. Leaves you in the ESS process buffer. It's a good idea to run this before you quit. It is run automatically by \[ess-quit]. (defalias 'ess-cleanup #[nil "\305 \206\211\204\306\307!\210\n\310=\204$\n\311=\203Q\312\313\314 \"!\203Q\315 \316\211\203P\f@r q\210\317 !\204H\203H \232\203H\320 !\210)\fA\211\204-*\321\316!)\207" [ess-local-process-name the-procname ess-S-quit-kill-buffers-p buf --dolist-tail-- ess-make-buffer-current error "I don't know which ESS process to clean up after!" t ask y-or-n-p format "Delete all buffers associated with process %s? " buffer-list nil get-buffer-process kill-buffer ess-switch-to-ESS] 5 (#$ . 76950) nil]) #@64 When defined this function is called by `inferior-ess-reload'. (defvar inferior-ess-reload-function nil (#$ . 77758)) (make-variable-buffer-local 'inferior-ess-reload-function) #@89 Reload the inferior process. Use `ess-defmethod' to define dialect specific overrides. (defalias 'inferior-ess-reload #[(&optional start-args) "\306 \210\307 \210\310 \311\216\312\211\313 \312\314\315!\210\316\317 !\210\320 !\203* !\202-\321\322!.\207" [#1=#:wconfig ess-ask-for-ess-directory ess-startup-directory ess-directory-function project-find-functions inferior-ess-reload-function inferior-ess-force ess-interrupt current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] nil ess-get-working-directory ess-quit no-save inferior-ess--wait-for-exit ess-get-process fboundp error "Unimplemented for this dialect" start-args] 4 (#$ . 77941) nil]) #@157 Wait for process exit. This should be used instead of `ess-wait-for-process' for waiting after issuing a quit command as the latter assumes a live process. (defalias 'inferior-ess--wait-for-exit #[(proc) "\302 \303 !\304=\205 \305 \306\"\210\302 Z\307V\203\310\311!\210\202)\207" [start-time proc float-time process-status run accept-process-output 0.002 1 error "Timeout while quitting process"] 3 (#$ . 78635)]) #@59 Function run just before an ESS process buffer is killed. (defalias 'ess-kill-buffer-function #[nil "\301p!\302!\205 \303!)\207" [proc get-buffer-process processp delete-process] 2 (#$ . 79062)]) #@325 Return the object names in position POSN of ALIST. ALIST is an alist like `ess-sl-modtime-alist'. POSN should be in 1 .. (length ALIST). If optional third arg FORCE is t, the corresponding element of the search list is re-read. Otherwise it is only re-read if it's a directory and has been modified since it was last read. (defalias 'ess-extract-onames-from-alist #[(alist posn &optional force) "S 8\211@\nA@\211\205\306 !\204 \f\232\204'\nA\307 \"\241\210\nAA,\207" [posn alist entry dir timestamp new-modtime ess-dir-modtime ess-object-names force] 5 (#$ . 79269)]) #@67 Return the last modtime if DIR is a directory, and nil otherwise. (defalias 'ess-dir-modtime #[(dir) "\205\302 !\205\303\304 !8\207" [ess-filenames-map dir file-directory-p 5 file-attributes] 3 (#$ . 79857)]) #@211 Return the modtime of the S object OBJECT (a string). Searches along the search list for a file named OBJECT and returns its modtime Returns nil if that file cannot be found, i.e., for R or any non-S language! (defalias 'ess-object-modtime #[(object) "\303 \304\204 \203\305\306 @!\nP! A\202\3078*\207" [result path object ess-search-list nil file-attributes file-name-as-directory 5] 3 (#$ . 80078)]) #@38 Return t if MOD1 is later than MOD2. (defalias 'ess-modtime-gt #[(mod1 mod2) "\205@ @V\206@ @U\205A@ A@V\207" [mod1 mod2] 2 (#$ . 80498)]) #@196 Return a list of current S object names associated with process NAME, using `ess-object-list' if that is non-nil. If exclude-first is non-nil, don't return objects in first positon (.GlobalEnv). (defalias 'ess-get-object-list #[(name &optional exclude-first) "\206rr\306\307 !!q\210\310 \210\311\312\313 \"!\210\n\203 \314\315!\203*\311\316!\210\317 \210\202.\311\320!\210\n\321 G\322\311\312\323 \"!\210\204K\324 \325\326#\311\312\327G\"!\210\f X\203k\330\324 \f\"\"\fT\211\202U\331!\211-\207" [ess-object-list name ess-sl-modtime-alist alist i n process-buffer ess-get-process ess-make-buffer-current ess-write-to-dribble-buffer format "(get-object-list %s) .." ess-process-get sp-for-help-changed\? "--> (ess-get-modtime-list)\n" ess-get-modtime-list " using existing ess-sl-modtime-alist\n" 2 nil " (length alist) : %d\n" ess-extract-onames-from-alist 1 force " have re-read pos=1: -> length %d\n" append ess-uniq-list result exclude-first] 6 (#$ . 80654)]) #@458 Evaluate the S command COMMAND, which returns a character vector. Return the elements of the result of COMMAND as an alist of strings. COMMAND should have a terminating newline. NO-PROMPT-CHECK, WAIT, and PROC are passed to `ess-command'. FILTER may be the keyword 'non-... or nil. To avoid truncation of long vectors, wrap your command (%s) like this, or a version with explicit options(max.print=1e6): "local({ out <- try({%s}); print(out, max=1e6) }) ". (defalias 'ess-get-words-from-vector #[(command &optional no-prompt-check wait proc) "\204\306 \210\307\310!\311\312\n\313Q\314\315\316\317 #!\210\320 \321&\210\315\322!\210r q\210eb\210\323 \314\324#\203F\325\224\325\225{\fB\2023)\315\fG\326V\203W\316\327\fG\"\202[\316\330\f\"!\210\331\f!,\207" [proc tbuffer word-RE full-word-regexp words command inferior-ess-force get-buffer-create " *ess-get-words*" "\\(\\\\\\\"\\|[^\"]\\)*" "\"\\(" "\\)\"\\( \\|$\\)" nil ess-if-verbose-write format "(ess-get-words-* command=%s full-word-regexp=%S)\n" ess-command sleep " [ok] .." re-search-forward t 1 5 " |-> (length words)= %d\n" " |-> words= '%s'\n" reverse no-prompt-check wait] 7 (#$ . 81650)]) #@143 Return non-nil if DIR is an S object directory with special files. I.e. if the filenames in DIR are not representative of the objects in DIR. (defalias 'ess-compiled-dir #[(dir) "\301\302!\303P!\206\301\302!\304P!\206\301\302!\305P!\207" [dir file-exists-p file-name-as-directory "___nonfile" "__BIGIN" "___NONFI"] 3 (#$ . 82827)]) #@480 Return alist of S object names in directory (or object) OBJ. If OBJ is a directory name (begins with `/') returns a listing of that dir. This may use the search list position POS if necessary. If OBJ is an object name, returns result of the command `inferior-ess-safe-names-command'. If POS is supplied return the result of the command in `inferior-ess-objects-command'. If OBJ is nil or not a directory, POS must be supplied. In all cases, the value is an list of object names. (defalias 'ess-object-names #[(obj &optional pos) ";\203\306\307\310\311#)\266\203\203\307\207\203\\\312!\203\\\313\n\"\243\206u \203I\314!\315P\312\f!\204;\316\f!?\205E\317\f!)\206u\320\321\322\"!\210 \205[\323\321 \"!\207\203j\323\321\"!\206u \205u\323\321 \"!\207" [obj inhibit-changing-match-data ess-object-name-db ess-filenames-map dir pos "ESSR" nil t string-match file-accessible-directory-p assoc file-name-as-directory ".Data" ess-compiled-dir directory-files ess-write-to-dribble-buffer format "(ess-object-names ..): directory %s not used\n" ess-get-words-from-vector inferior-ess-objects-command inferior-ess-safe-names-command] 7 (#$ . 83173)]) #@49 Return alist of S4 slot names of S4 object OBJ. (defalias 'ess-slot-names #[(obj) "\301\302\303\"!\207" [obj ess-get-words-from-vector format "slotNames(%s)\n"] 4 (#$ . 84354)]) #@575 Get FUNARGS from cache or ask the process for it. Return FUNARGS - a list with the first element being a cons (PACKAGE_NAME . TIME_STAMP), second element is a string giving arguments of the function as they appear in documentation, third element is a list of arguments of all methods. If PROC is given, it should be an ESS process. If PACKAGE_NAME is nil, and TIME_STAMP is less recent than the time of the last user interaction to the process, then update the entry. PACKAGE_NAME is also nil when FUNNAME was not found, or FUNNAME is a special name that contains :,$ or @. (defalias 'ess-function-arguments #[(funname &optional proc) "\205\261 \204 \306 \205\261 \206\307\n!\310 \311\"\206)\312\313\314\"\315 \311 #\210 )\316 \"\211@@\f@A#\f\203S\317#\310 \320\"\"\203S \203Q \321\232\203S\322\f\206\260\323\310 \324\"\"A@\206\260\310 \325\"?\205\260r\326\327$\330!\"\322\211\211\211 &q\210eb\210\331\332\322\333#\203\250\334\224b\210\3351\231\336\337p!!0\202\233\210\322\211\203\250\f\211@\340 B\240\210\341\342!\f #)-\207" [funname proc ess-local-process-name cache args pack ess-process-live-p get-process process-get funargs-cache make-hash-table :test equal process-put gethash time-less-p last-eval "" nil assoc funargs-pre-cache busy ess-command format ess-quote-special-chars re-search-forward "(list" t 0 (error) eval read current-time puthash substring-no-properties ts ess-funargs-command] 8 (#$ . 84540)]) #@570 Create a database of object names in standard S directories. This database is saved in the file specified by `ess-object-name-db-file', and is loaded when `ess-mode' is loaded. It defines the variable `ess-object-name-db', which is used for completions. Before you call this function, modify the S search list so that it contains all the non-changing (i.e. system) S directories. All positions of the search list except for position 1 are searched and stored in the database. After running this command, you should move ess-namedb.el to a directory in the `load-path'. (defalias 'ess-create-object-name-db #[nil "\306\307 A\310\306\311\312!\306 \313\314\315\"!\210\203J\316\317@\"\210@\320\306\"B BA\313\314\321 #!\210T\202r\fq\210\322 \210\323c\210\324 p\"\210\325c\210\326 !\327ed #\210\316\330 \"\210)\331\f!\210 \211.\207" [ess-object-name-db ess-object-name-db-file temp-object-name-db-file temp-object-name-db buffer name nil ess-search-list 2 get-buffer-create " *ess-db*" ess-write-to-dribble-buffer format "(object db): search-list=%s \n " message "Searching %s" ess-object-names "(object db): temp-obj-name-db=%s \n pos=%s" erase-buffer "(setq ess-object-name-db '" prin1 ")\n" expand-file-name write-region "Wrote %s" kill-buffer pos search-list] 6 (#$ . 85999) nil]) #@83 Reread all directories/objects in variable `ess-search-list' to form completions. (defalias 'ess-resynch #[nil "\303 \204 \304\305!\210\306\211\306\307\310\311\"\210\312 \207" [ess-sl-modtime-alist ess-object-list ess-object-name-db ess-make-buffer-current error "Not an ESS process buffer" nil ess-process-put sp-for-help-changed\? t ess-get-modtime-list] 4 (#$ . 87320) nil]) #@50 Return completion only within string or comment. (defalias 'ess-filename-completion #[nil "\214\3011!\302=\205`\303\304p!!V\205\303\304p!!d}0\210\202\"\210\305`!\205-\306\307 \310\")\207" [major-mode (error) inferior-ess-mode process-mark get-buffer-process ess-inside-string-or-comment-p append comint-filename-completion (:exclusive no)] 4 (#$ . 87708)]) #@41 Do file completion only within strings. (defalias 'ess-complete-filename #[nil "\214\3011!\302=\205`\303\304p!!V\205\303\304p!!d}0\210\202\"\210\305`!\205*\306 )\207" [major-mode (error) inferior-ess-mode process-mark get-buffer-process ess-inside-string-or-comment-p comint-dynamic-complete-filename] 4 (#$ . 88079)]) (defalias 'ess-after-pathname-p #[nil "\212\302 \303\216`\304\305\306\307#\205 \310\225=,\207" [save-match-data-internal opoint match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] re-search-backward "\\(\"\\|'\\)[~/#$.a-zA-Z0-9][^ \n\"']*" nil t 0] 4]) #@415 Return the current search list as a list of strings. Elements which are apparently directories are expanded to full dirnames. Don't try to use cache if FORCE-UPDATE is non-nil. Is *NOT* used by \[ess-execute-search], but by \[ess-resynch], \[ess-get-object-list], \[ess-get-modtime-list], \[ess-execute-objects], \[ess-object-modtime], \[ess-create-object-name-db], and (indirectly) by \[ess-get-help-files-list]. (defalias 'ess-search-list #[(&optional force-update) "r\306!q\210\307\310\311!\307\n\203 \f\204 \310\312!\204 \n\202\205\313\314!\210\315\316! \307 \317 \320#\210r q\210eb\210\313\321\322d#!\210\323\324\307\325#\203~\326\224\326\225{\327\330\"\203t\331P!\203tP\332 C\"\202L\333 !\210- ,\207" [ess-current-process-name tramp-mode slist result force-update default-directory ess-get-process-buffer nil ess-process-get search-list sp-for-help-changed\? ess-write-to-dribble-buffer " (ess-search-list ... ) " get-buffer-create " *search-list*" ess-command 0.05 format "after '%s', point-max=%d\n" re-search-forward "\"\\([^\"]*\\)\"" t 1 string-match "^[^/]" file-directory-p append kill-buffer inferior-ess-search-list-command elt my-search-cmd homedir tbuffer] 5 (#$ . 88709)]) #@255 Record directories in the search list, and the objects in those directories. The result is stored in CACHE-VAR-NAME. If nil, CACHE-VAR-NAME defaultst to `ess-sl-modtime-alist'. If EXCLUDE-FIRST is non-nil don't recompile first object in the search list. (defalias 'ess-get-modtime-list #[(&optional cache-var-name exclude-first) "\203\n\306 A\202\f\306 \203\307\202\310 \206\311\312\211 \203W @\313\314 \fJ\"\206I\313 \315 !D\316\317 \"\210\320 \n\"\316\321 \"\210\"C\"\nT A\211\204&\322\323\324 G#!\210\fL-\207" [exclude-first searchlist index cache-var-name cache-name pack ess-search-list 2 1 ess-sl-modtime-alist nil append assoc ess-dir-modtime message "Forming completions for %s..." ess-object-names "Forming completions for %s...done" ess-write-to-dribble-buffer format "(%s): created new alist of length %d\n" newalist] 9 (#$ . 89952)]) #@452 Check if input STR changed the search path. This function monitors user input to the inferior ESS process so that Emacs can keep the process variable 'search-list' up to date. `ess-completing-read' in \[ess-read-object-name] uses this list indirectly when it prompts for help or for an object to dump. From ESS 12.09 this is not necessary anymore, as the search path is checked on idle time. It is kept for robustness and backward compatibility only. (defalias 'ess-search-path-tracker #[(str) "\205\302 \"\205\303\304\305\"\207" [ess-change-sp-regexp str string-match ess-process-put sp-for-help-changed\? t] 3 (#$ . 90835)]) #@65 When defined this function is called by `ess-read-object-name'. (defvar ess-read-object-name-function nil (#$ . 91474)) (make-variable-buffer-local 'ess-read-object-name-function) #@163 Read an object name from the minibuffer with completion, and return it. P-STRING is the prompt string. Use `ess-defmethod' to define dialect specific overrides. (defalias 'ess-read-object-name #[(p-string) "\306!\203\n !\207\307 \310 !\311 \f\312\211\211\211\n&\211\313\230\203&\n\202' +C\207" [ess-read-object-name-function p-string default ess-local-process-name object-list spec fboundp ess-read-object-name-dump ess-get-object-list ess-completing-read nil ""] 9 (#$ . 91661)]) #@50 Return the object name at point, or nil if none. (defalias 'ess-read-object-name-default #[nil "\3031H\212m\203\f\304u\210\30524gz\211\306U\206\307U)?\2053o\203-\310\305\311\"\210\202\304u\210\2020\210\312\313!\210`\314\313!\210`\315\n \"+0\207\210\311\207" [sc end beg (error) -1 nosym 119 95 throw nil forward-sexp 1 backward-sexp buffer-substring-no-properties] 4 (#$ . 92158)]) #@58 Return the object name at point, or "Temporary" if none. (defalias 'ess-read-object-name-dump #[nil "\3031<\212\30429gz\305U\204\"o\203\306\304\307\"\210\202 \310u\210\202 \311\312!\210`\313\312!\210`\211{\211\2067\314+0)0\207\210\307\207" [end beg object-name (error) nosym 119 throw nil -1 forward-sexp 1 backward-sexp "Temporary"] 4 (#$ . 92561)]) (defvar ess--handy-history nil) #@63 Request and execute a command from `ess-handy-commands' list. (defalias 'ess-handy-commands #[nil "\206 \305 @\n\"\205 @\306\305\307\310\311\312\313\n\"\314\"\315\316\315\303\f&\n\"A!*\207" [ess--local-handy-commands ess-handy-commands commands ess--handy-history hist assoc call-interactively ess-completing-read "Execute" sort mapcar car string-lessp nil t] 10 (#$ . 92962) nil]) #@132 If comma is invoked at the process marker of an ESS inferior buffer, request and execute a command from `ess-handy-commands' list. (defalias 'ess-smart-comma #[nil "\303p!\211\203`\304\305!!=\203\306 \202/ \203-\307 \210\310c\210\n\311=?\205/\312 \202/\313c)\207" [proc ess-smart-operators major-mode get-buffer-process marker-position process-mark ess-handy-commands delete-horizontal-space ", " inferior-ess-mode indent-according-to-mode ","] 5 (#$ . 93359) nil]) #@149 Set the current working to PATH for the ESS buffer and iESS process. NO-ERROR prevents errors when this has not been implemented for `ess-dialect'. (defalias 'ess-set-working-directory #[(path &optional no-error) "\203\322\306 !\211\203\307\310!\210\311 !\202 \n\203\277\312 !\211\242\f>\204.\313\314\315 D\"\210 A@ \242\f>\204@\313\314\315 D\"\210\316 8 \242\f>\204S\313\314\315 D\"\210\317 8 \242\f>\204f\313\314\315 D\"\210\320 8 \242\f>\204y\313\314\315 D\"\210\321 8 \242\f>\204\214\313\314\315 D\"\210\322 8 \242\f>\204\237\313\314\315 D\"\210\323 8 \210\210\210\210\210\210\210.\202\300 \324\325\"!\210\326 !\211 +\207!?\205\335\327\330\"\"\207" [ess-setwd-command path remote v cl-struct-tramp-file-name-tags v-method file-remote-p require tramp-sh tramp-sh-handle-expand-file-name tramp-dissect-file-name signal wrong-type-argument tramp-file-name 2 3 4 5 6 7 ess-eval-linewise format file-name-as-directory error "Not implemented for dialect %s" v-user v-domain v-host v-port v-localname v-hop lpath default-directory no-error ess-dialect] 5 (#$ . 93842) "DChange working directory to: "]) (byte-code "\300\301\302\"\210\300\303\302\304#\210\305\303\302\306#\207" [defalias ess-change-directory ess-set-working-directory ess-use-dir nil make-obsolete "ESS 18.10"] 4) #@241 Set the current process directory to the directory of this file. `default-directory' is used as a fallback. If that buffer has no associated *R* process, use \[ess-force-buffer-current], unless prefix argument NO-FORCE-CURRENT is non-nil. (defalias 'ess-use-this-dir #[(&optional no-force-current) "\203\n\303!\202 \304\305\n!!)\207" [buffer-file-name default-directory dir file-name-directory ess-set-working-directory abbreviate-file-name] 3 (#$ . 95181) "P"]) #@69 Retrive the current working directory from the current ess process. (defalias 'ess-get-working-directory #[(&optional no-error) "\203 \303\304!@!\207 ?\205\305\306\n\"\207" [ess-getwd-command no-error ess-dialect abbreviate-file-name ess-get-words-from-vector error "Not implemented for dialect %s"] 3 (#$ . 95657)]) #@116 Set Emacs' current directory to be the same as the subprocess directory. To be used in `ess-idle-timer-functions'. (defalias 'ess-synchronize-dirs #[nil "\205T \205T\n\205\306\n!\211\205Sr\307 !q\210\310 \311\"\310 \312\"\f\2033 \2033\313\f \"\205R\310 \314\"?\205R\315\316!\210\317 !@\211\320 \312\321 #\210)+)\207" [ess-can-eval-in-background ess-getwd-command ess-local-process-name *proc* tv le get-process process-buffer process-get last-eval last-sync-dirs time-less-p busy ess-if-verbose-write "\n(ess-synchronize-dirs)\n" ess-get-words-from-vector process-put current-time default-directory out] 5 (#$ . 95986)]) #@65 Set Emacs' current directory to be the same as the *R* process. (defalias 'ess-dirs #[nil "\302\303!@\304\305\"\210\306!\211)\207" [dir default-directory ess-get-words-from-vector "getwd()\n" message "(ESS / default) directory: %s" file-name-as-directory] 3 (#$ . 96632) nil]) #@66 Internal. Mark all the search-list related variables as changed. (defalias 'ess--mark-search-list-as-changed #[nil "\300\301\302\"\210\300\303\302\"\207" [ess-process-put sp-for-help-changed\? t sp-for-ac-changed\?] 3 (#$ . 96919)]) #@81 To be used in `ess-idle-timer-functions', to set search path related variables. (defalias 'ess-cache-search-list #[nil "\205i \205i\n\205\306\n!\211\205hr\307 !q\210\310 \311\"\310 \312\"\f\2033 \2033\313\f \"\205g\310 \314\"?\205g\315\316!\310 \317\"\211\232?\205Z\320 \317#\210\321 \210*\320 \312\322 #\210)+)\207" [ess-can-eval-in-background inferior-ess-search-list-command ess-local-process-name *proc* tv le get-process process-buffer process-get last-eval last-cache-search-list time-less-p busy ess-search-list force search-list process-put ess--mark-search-list-as-changed current-time old-path path out] 5 (#$ . 97158)]) #@37 Create an empty buffer called NAME. (defalias 'ess-create-temp-buffer #[(name) "\304!\305 !r q\210\306 \210\307\n \"\210) *\207" [name ess-local-customize-alist elca buff get-buffer-create eval erase-buffer ess-setq-vars-local] 3 (#$ . 97823)]) #@107 Display the buffer BUFF. Uses `temp-buffer-show-function' and respects `ess-display-buffer-reuse-frames'. (defalias 'ess-display-temp-buffer #[(buff) "\303!\203\n !\210\304 \305\n#\207" [temp-buffer-show-function buff ess-display-buffer-reuse-frames fboundp display-buffer (display-buffer-reuse-window)] 4 (#$ . 98078)]) (defalias 'ess--inject-code-from-file #[(file) "\304\305\306\"rq\210\307\216\310 !\210\311 + \312\230\203\313\n\314Q\315\n!)\207" [#1=#:temp-buffer file content ess-dialect generate-new-buffer " *temp*" t #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-file-contents buffer-string "R" "{" "}\n" ess-command] 3]) #@154 Check whether loading this file would overwrite some ESS objects which have been modified more recently than this file, and confirm if this is the case. (defalias 'ess-check-modifications #[nil "G\304V\205K\305 \205K \205K\306\307\305 !8\310\212eb\210\311\312\310\313#\205*\314\224\314\225{) \205J\n\205J\315\316\n! \"\205J\317\320\321\n\"!?\205J\322\323!*\207" [ess-change-sp-regexp ess-filenames-map objname sourcemod 0 buffer-file-name 5 file-attributes nil re-search-forward "^\\s *\"?\\(\\(\\sw\\|\\s_\\)+\\)\"?\\s *[<_]" t 1 ess-modtime-gt ess-object-modtime y-or-n-p format "The ESS object %s is newer than this file. Continue? " error "Aborted"] 4 (#$ . 98750)]) #@125 If file FNAME has an unsaved buffer, offer to save it. Returns t if the buffer existed and was modified, but was not saved. (defalias 'ess-check-source #[(fname) "\304!\211??\205I\305!?\211\203(\306 !\204(r q\210\307\310!\210\311 \210)\202E\306 !\203E \204=\312\313\314\315 !\"!\203Er q\210\311 \210)\306 !))\207" [fname buff deleted ess-mode-silently-save get-file-buffer file-exists-p buffer-modified-p set-buffer-modified-p t save-buffer y-or-n-p format "Save buffer %s first? " buffer-name] 6 (#$ . 99440)]) #@166 Jump to error in last loaded ESS source file. With prefix argument, only shows the errors ESS reported. RESET is for compatibility with `next-error' and is ignored. (defalias 'ess-parse-errors #[(&optional showerr reset) "\306 \210\307!\211\204\310\311!\210 q\210db\210\312\n\313\314#\203c\315\224\315\225{\316 !\317\320\224\320\225{!\321\224\321\225{\203B\322 !\210\202Z\f\204R\323 !r\fq\210\324 \210)\325\f!\210\326 !\210\327\314\",\202j\330\331!\210\322 !)\207" [ess-error-buffer-name errbuff ess-error-regexp filename fbuffer linenum ess-make-buffer-current get-buffer error "You need to do a load first!" re-search-backward nil t 3 get-file-buffer string-to-number 2 1 ess-display-temp-buffer find-file-noselect ess-mode pop-to-buffer ess-goto-line princ message "Not a syntax error." errmess showerr] 5 (#$ . 99970) "P"]) #@86 Something bad has happened. Display the S buffer, and cause an error displaying MSG. (defalias 'ess-error #[(msg) "\302\303\304!!!\210\305 !\207" [ess-local-process-name msg display-buffer process-buffer get-process error] 4 (#$ . 100823)]) (byte-code "\300\301\302\303#\210\304\305!\207" [make-obsolete ess-error nil "18.10" provide ess-inf] 4)