;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\207" [require ess-custom ess-utils] 2) #@181 *Prefix key to use for noweb mode commands. The value of this variable is checked as part of loading noweb mode. After that, changing the prefix key requires manipulating keymaps. (defvar ess-noweb-mode-prefix "\356" (#$ . -162)) #@46 Hook that is run after noweb mode is loaded. (defvar ess-noweb-mode-load-hook nil (#$ . 398)) #@45 Hook that is run after entering noweb mode. (defvar ess-noweb-mode-hook nil (#$ . 498)) #@122 Hook that is run after the code mode is selected. This is the place to overwrite keybindings of the ess-noweb-CODE-MODE. (defvar ess-noweb-select-code-mode-hook nil (#$ . 593)) #@130 Hook that is run after the documentation mode is selected. This is the place to overwrite keybindings of the ess-noweb-DOC-MODE. (defvar ess-noweb-select-doc-mode-hook nil (#$ . 777)) #@135 Hook that is run after the documentation or the code mode is selected. This is the place to overwrite keybindings of the other modes. (defvar ess-noweb-select-mode-hook nil (#$ . 968)) #@122 Hook that is run every time point moves from one chunk to another. It will be run whether or not the major-mode changes. (defvar ess-noweb-changed-chunk-hook nil (#$ . 1160)) #@253 Default major mode for editing code chunks. This is set to FUNDAMENTAL-MODE by default, but you might want to change this in the Local Variables section of your file to something more appropriate, like C-MODE, FORTRAN-MODE, or even INDENTED-TEXT-MODE. (defvar ess-noweb-default-code-mode 'fundamental-mode (#$ . 1342)) #@360 Major mode for editing this particular code chunk. It defaults to ess-noweb-default-code-mode, but can be reset by a comment on the first line of the chunk containing the string "-*- NEWMODE -*-" or "-*- NEWMODE-mode -*-" or "-*- mode: NEWMODE -*- " or "-*- mode: NEWMODE-mode -*- " Option three is recommended, as it is the closest to standard emacs usage. (defvar ess-noweb-code-mode 'c-mode (#$ . 1668)) #@153 Major mode for editing documentation chunks. Sensible choices would be tex-mode, latex-mode, sgml-mode, or html-mode. Maybe others will exist someday. (defvar ess-noweb-default-doc-mode 'latex-mode (#$ . 2083)) #@77 A syntax-table syntax table that makes quoted code in doc chunks to behave. (defvar ess-noweb-doc-mode-syntax-table nil (#$ . 2301)) #@149 This keeps track of the chunk we have just been in. If this is not the same as the current chunk, we have to check if we need to change major mode. (defvar ess-noweb-last-chunk-index 0 (#$ . 2441)) #@38 Vector of the chunks in this buffer. (defvar ess-noweb-chunk-vector nil (#$ . 2645)) #@76 If not NIL, the display will always be narrowed to the current chunk pair. (defvar ess-noweb-narrowing nil (#$ . 2736)) #@112 If not nil, the keys `@' and `<' will be bound to ess-noweb-ELECTRIC-@ and ess-noweb-ELECTRIC-<, respectively. (defvar ess-noweb-electric-@-and-< t (#$ . 2863)) #@322 If not nil, enables moving between chunks using mouse-1. Clicking on the '<<' at the beginning of a chunk name takes you to the previous occurence of that chunk name, clicking on the '>>' takes you to the next. Assumes mouse-1 is bound to mouse-set-point, so if you have rebound mouse-1, this will override your binding. (defvar ess-noweb-use-mouse-navigation t (#$ . 3031)) #@307 If not nil, the function pair \[ess-noweb-hide-code-quotes] and \[ess-noweb-restore-code-quotes] are used to "protect" code inside "[[" .. "]]" pairs. Note that rarely this has been found to be buggy with the "catastrophic" consequence of whole parts of your document being replaced by sequences of '*'. (defvar ess-noweb-code-quotes-handling nil (#$ . 3413)) #@221 Default major mode for editing noweb documentation chunks. It is not possible to have more than one doc-mode in a file. However, this variable is used to determine whether the doc-mode needs to by added to the mode-line (defvar ess-noweb-doc-mode ess-noweb-default-doc-mode (#$ . 3782)) (defvar ess-noweb-weave-options "-delay") (defvar ess-noweb-latex-viewer "xdvi") (defvar ess-noweb-html-viewer "netscape") (defalias 'ess-noweb-weave #[(&optional name) "\305\306! \204'\n\307=\203\310 \311\312\313 \"O\314P\202'\310 \311\312\313 \"O\315P\316 P P\317\f\320 $)\207" [buffer name ess-noweb-doc-mode ess-noweb-weave-options weave-process get-buffer-create "Weave Buffer" html-mode buffer-file-name 0 string-match ".nw" ".html" ".tex" "> " start-process "noweave"] 5 nil nil]) #@67 Buffer local variable, T iff this buffer is edited in noweb mode. (defvar ess-noweb-mode nil (#$ . 4574)) #@69 A kludge to get round very odd behaviour of newline in quoted code. (defalias 'ess-noweb-newline #[(&optional arg) "\203 \301!\210\202\301\302!\210\303 \207" [arg newline 1 ess-noweb-indent-line] 2 (#$ . 4686) "p"]) #@32 noweb minor-mode prefix keymap (defvar ess-noweb-mode-prefix-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\302\335\334#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\302\344\345#\210\302\346\347#\210\302\350\351#\210\302\352\353#\210\302\354\355#\210\302\356\357#\210\302\360\361#\210\302\362\363#\210\302\364\365#\210\302\366\367#\210\302\370\371#\210)\207" [map make-sparse-keymap define-key "\230" ess-eval-chunk "" ess-eval-chunk-and-step "" ess-noweb-next-chunk "" ess-noweb-previous-chunk "\356" ess-noweb-goto-next "\355" ess-noweb-insert-default-mode-line "\360" ess-noweb-goto-previous "c" ess-noweb-next-code-chunk "C" ess-noweb-previous-code-chunk "d" ess-noweb-next-doc-chunk "D" ess-noweb-previous-doc-chunk "g" ess-noweb-goto-chunk "\f" ess-noweb-update-chunk-vector "\354" "w" ess-noweb-copy-chunk-as-kill "W" ess-noweb-copy-chunk-pair-as-kill "k" ess-noweb-kill-chunk "K" ess-noweb-kill-chunk-pair "m" ess-noweb-mark-chunk "M" ess-noweb-mark-chunk-pair "n" ess-noweb-narrow-to-chunk "N" ess-noweb-narrow-to-chunk-pair "t" ess-noweb-toggle-narrowing " " ess-noweb-complete-chunk "q" ess-noweb-fill-chunk "i" ess-noweb-new-chunk "o" ess-noweb-occur "h" ess-noweb-describe-mode] 4) (#$ . 4913)) #@29 ESS Noweb minor mode keymap (defvar ess-noweb-minor-mode-map (byte-code "\304  \203\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\n #\210)\207" [map ess-noweb-electric-@-and-< ess-noweb-mode-prefix ess-noweb-mode-prefix-map make-sparse-keymap define-key "@" ess-noweb-electric-@ "<" ess-noweb-electric-< "\361" ess-noweb-fill-paragraph-chunk [(control meta 92)] ess-noweb-indent-region " " ess-noweb-indent-line " " ess-noweb-newline [mouse-1] ess-noweb-mouse-first-button] 4) (#$ . 6366)) #@24 Menu keymap for noweb. (defvar ess-noweb-minor-mode-menu nil (#$ . 6951)) (byte-code "\303\304\305\306$\210\307 \236\204\310 \311C\"\307\n\236\204\307B\nB\303\207" [ess-noweb-minor-mode-map minor-mode-alist minor-mode-map-alist easy-menu-do-define ess-noweb-minor-mode-menu "Menu keymap for noweb." ("Noweb" ("Movement" ["Previous chunk" ess-noweb-previous-chunk t] ["Next chunk" ess-noweb-next-chunk t] ["Previous chunk of same name" ess-noweb-goto-previous t] ["Next chunk of same name" ess-noweb-goto-next t] ["Goto chunk" ess-noweb-goto-chunk t] ["Previous code chunk" ess-noweb-previous-code-chunk t] ["Next code chunk" ess-noweb-next-code-chunk t] ["Previous documentation chunk" ess-noweb-previous-doc-chunk t] ["Next documentation chunk" ess-noweb-next-doc-chunk t]) ("Editing" ["Copy chunk" ess-noweb-copy-chunk-as-kill t] ["Copy chunk pair" ess-noweb-copy-chunk-pair-as-kill t] ["Kill chunk" ess-noweb-kill-chunk t] ["Kill chunk pair" ess-noweb-kill-chunk-pair t] ["Mark chunk" ess-noweb-mark-chunk t] ["Mark chunk pair" ess-noweb-mark-chunk-pair t]) ("Narrowing" ["Narrow to chunk" ess-noweb-narrow-to-chunk t] ["Narrow to chunk pair" ess-noweb-narrow-to-chunk-pair t] ["Toggle auto narrowing" ess-noweb-toggle-narrowing t] ["Widen" widen t]) ("Modes" ["Set documentation mode" ess-noweb-set-doc-mode t] ["Set default code mode" ess-noweb-set-code-mode t] ["Set code mode for this chunk" ess-noweb-set-this-code-mode t] ["Insert default mode line" ess-noweb-insert-default-mode-line t]) ("Tangling" ["Tangle current chunk" ess-noweb-tangle-chunk t] ["Tangle current thread" ess-noweb-tangle-current-thread t] ["Tangle named thread" ess-noweb-tangle-thread t]) ("Miscellaneous" ["Complete chunk name" ess-noweb-complete-chunk t] ["Fill current chunk" ess-noweb-fill-chunk t] ["Insert new chunk" ess-noweb-new-chunk t] ["Update the chunk vector" ess-noweb-update-chunk-vector t] ["Chunk occurrences" ess-noweb-occur t]) "--" ["Help" ess-noweb-describe-mode t]) ess-noweb-mode append (ess-noweb-mode " Noweb")] 5) #@62 Minor meta mode for editing noweb files. See ess-noweb-mode. (defalias 'ess-noweb-minor-mode #[(&optional arg) "\301!\207" [arg ess-noweb-mode] 2 (#$ . 8987) nil]) #@2470 Minor meta mode for editing noweb files. `Meta' refers to the fact that this minor mode is switching major modes depending on the location of point. The following special keystrokes are available in noweb mode: Movement: \[ess-noweb-next-chunk] goto the next chunk \[ess-noweb-previous-chunk] goto the previous chunk \[ess-noweb-goto-previous] goto the previous chunk of the same name \[ess-noweb-goto-next] goto the next chunk of the same name \[ess-noweb-goto-chunk] goto a chunk \[ess-noweb-next-code-chunk] goto the next code chunk \[ess-noweb-previous-code-chunk] goto the previous code chunk \[ess-noweb-next-doc-chunk] goto the next documentation chunk \[ess-noweb-previous-doc-chunk] goto the previous documentation chunk Copying/Killing/Marking/Narrowing: \[ess-noweb-copy-chunk-as-kill] copy the chunk the point is in into the kill ring \[ess-noweb-copy-chunk-pair-as-kill] copy the pair of doc/code chunks the point is in \[ess-noweb-kill-chunk] kill the chunk the point is in \[ess-noweb-kill-chunk-pair] kill the pair of doc/code chunks the point is in \[ess-noweb-mark-chunk] mark the chunk the point is in \[ess-noweb-mark-chunk-pair] mark the pair of doc/code chunks the point is in \[ess-noweb-narrow-to-chunk] narrow to the chunk the point is in \[ess-noweb-narrow-to-chunk-pair] narrow to the pair of doc/code chunks the point is in \[widen] widen \[ess-noweb-toggle-narrowing] toggle auto narrowing Filling and Indenting: \[ess-noweb-fill-chunk] fill (or indent) the chunk at point according to mode \[ess-noweb-fill-paragraph-chunk] fill the paragraph at point, restricted to chunk \[ess-noweb-indent-line] indent the line at point according to mode Insertion: \[ess-noweb-insert-default-mode-line] insert a line to set this file's code mode \[ess-noweb-new-chunk] insert a new chunk at point \[ess-noweb-complete-chunk] complete the chunk name before point \[ess-noweb-electric-@] insert a `@' or start a new doc chunk \[ess-noweb-electric-<] insert a `<' or start a new code chunk Modes: \[ess-noweb-set-doc-mode] set the major mode for editing doc chunks \[ess-noweb-set-code-mode] set the major mode for editing code chunks \[ess-noweb-set-this-code-mode] set the major mode for editing this code chunk Misc: \[ess-noweb-occur] find all occurrences of the current chunk \[ess-noweb-update-chunk-vector] update the markers for chunks \[ess-noweb-describe-mode] describe ess-noweb-mode  (defalias 'ess-noweb-mode #[(&optional arg) "\306 \210\307\301!\210\203\310!\311V\202 ?\211\203r\312\313\314\"\210\307\302!\210\315\316 \210\317 \311=\2033\320\2024\311\f\203A\304\321!\210\322\320!\210\323\324\325\"\210\323\326\327\315\330$\210\323\331\332\315\330$\210\323\333\334\"\210\323\335\336\"\210\323\337\340\"\210\323\341\342\"\210\315\343\344!\210\345\346!\207\347\324\325\"\210\347\326\327\330#\210\347\331\332\330#\210\347\333\334\"\210\347\335\336\"\210\347\337\340\"\210\347\341\342\"\210\350\322!\203\252\203\252\322\321!\210\345\351!\207\345\352!\207" [arg ess-noweb-mode ess-use-flymake ess-noweb-last-chunk-index font-lock-mode ess-noweb-doc-mode-syntax-table kill-all-local-variables make-local-variable prefix-numeric-value 0 mapc ess-noweb-make-variable-permanent-local (ess-noweb-mode ess-local-process-name ess-dialect ess-language ess-use-flymake after-change-functions before-change-functions ess-noweb-narrowing ess-noweb-chunk-vector post-command-hook isearch-mode-hook isearch-mode-end-hook ess-noweb-doc-mode ess-noweb-code-mode ess-noweb-default-code-mode ess-noweb-last-chunk-index) nil ess-noweb-update-chunk-vector ess-noweb-find-chunk-index-buffer 1 -1 ess-noweb-font-lock-mode add-hook post-command-hook ess-noweb-post-command-function after-change-functions ess-noweb-after-change-function t before-change-functions ess-noweb-before-change-function ess-noweb-select-doc-mode-hook ess-noweb-auto-fill-doc-mode ess-noweb-select-code-mode-hook ess-noweb-auto-fill-code-mode isearch-mode-hook ess-noweb-note-isearch-mode isearch-mode-end-hook ess-noweb-note-isearch-mode-end run-hooks ess-noweb-mode-hook message "noweb mode: use `M-x ess-noweb-describe-mode' for further information" remove-hook boundp "ESS-Noweb and ESS-Noweb-Font-Lock Modes Removed" "ESS-Noweb mode removed"] 6 (#$ . 9160) "P"]) #@84 Declare VAR buffer local, but protect it from beeing killed by major mode changes. (defalias 'ess-noweb-make-variable-permanent-local #[(var) "\301!\210\302\303\304#\207" [var make-variable-buffer-local put permanent-local t] 4 (#$ . 13486)]) #@48 Take note of an incremental search in progress (defalias 'ess-noweb-note-isearch-mode #[nil "\300\301\302\"\207" [remove-hook post-command-hook ess-noweb-post-command-function] 3 (#$ . 13737)]) #@49 Take note of an incremental search having ended (defalias 'ess-noweb-note-isearch-mode-end #[nil "\300\301\302\"\207" [add-hook post-command-hook ess-noweb-post-command-function] 3 (#$ . 13937)]) #@54 The hook being run after each command in noweb mode. (defalias 'ess-noweb-post-command-function #[nil "\300 \207" [ess-noweb-select-mode] 1 (#$ . 14139)]) #@54 Whether the current change affects a chunk boundary. (defvar ess-noweb-chunk-boundary-changed nil (#$ . 14300)) (defvar ess-noweb-chunk-boundary-regexp "^\\(@[^@]\\)\\|\\(<<\\)") #@37 Record changes to chunk boundaries. (defalias 'ess-noweb-before-change-function #[(begin end) "\212b\210\304 \n\305#\211)\207" [begin ess-noweb-chunk-boundary-regexp end ess-noweb-chunk-boundary-changed re-search-forward t] 4 (#$ . 14485)]) #@136 Function to run after every change in a noweb buffer. If the changed region contains a chunk boundary, it will update the chunk vector (defalias 'ess-noweb-after-change-function #[(begin end length) "\212b\210 \204\304\n \305#\205\306 \210\307\211)\207" [begin ess-noweb-chunk-boundary-changed ess-noweb-chunk-boundary-regexp end re-search-forward t ess-noweb-update-chunk-vector nil] 4 (#$ . 14735)]) #@105 Scan the whole buffer and place a marker at each "^@" and "^<<". Record them in ess-noweb-CHUNK-VECTOR. (defalias 'ess-noweb-update-chunk-vector #[nil "\212eb\210\302\303 BC\304\305\306\307#\203^\310\224b\210\311\224\2043\312\224\203)\313\312\224\312\225\"\202*\302\303 BB\202X\314y\210\315\316!\203B\314y\210\2026\315\317!\203Q\313\314\224\314\225\"\202R\302\303 BB\314y\210\202\n\302\320 BB\321\322!!\211*\207" [chunk-list ess-noweb-chunk-vector doc point-marker re-search-forward "^\\(@\\( \\|$\\|\\( %def\\)\\)\\|<<\\(.*\\)>>=\\)" nil t 0 3 4 buffer-substring-no-properties 1 looking-at "@ %def" "<<\\(.*\\)>>=" point-max-marker vconcat reverse] 4 (#$ . 15150) nil]) #@85 Return a pair consisting of the name (or 'DOC) and the marker of the current chunk. (defalias 'ess-noweb-find-chunk #[nil "\204\301 \210\302 H\207" [ess-noweb-chunk-vector ess-noweb-update-chunk-vector ess-noweb-find-chunk-index-buffer] 2 (#$ . 15846)]) #@62 Return t if the chunk 'index' is a code chunk, nil otherwise (defalias 'ess-noweb-chunk-is-code #[(index) "\301!@;\207" [index ess-noweb-chunk-vector-aref] 2 (#$ . 16110) nil]) #@52 Return t if we are in a code chunk, nil otherwise. (defalias 'ess-noweb-in-code-chunk #[nil "\300\301 !\207" [ess-noweb-chunk-is-code ess-noweb-find-chunk-index-buffer] 2 (#$ . 16294) nil]) #@77 Return the name of the mode to use if we are in a mode line, nil otherwise. (defalias 'ess-noweb-in-mode-line #[nil "\303\211\211\212\304\305!\210\306\307\310!!\210\311\312\212\303\210`)\313#\205\201\306\307\314!!\210\315\303w\210`\311\312\212\303\210`)\313#\205\201\306\307\316!!\210\317u\210\315\303x\210`\nb\210\n {\227\320P\211G\321Y\205\201\322\323O\320\232\203e\324\323O\324\325O\326\232\205\201\327\303O\211\205\201\306\307\330\"!\210\331!,\207" [mode end beg nil beginning-of-line 1 ess-write-to-dribble-buffer format "(n-i-m-l: 1)" search-forward "-*-" t "(n-i-m-l: 2)" " " "(n-i-m-l: 3)" -3 "-mode" 11 -10 -5 0 5 "mode:" 6 "(n-i-m-l: 3) mode=%s" intern] 5 (#$ . 16490) nil]) #@66 Return the index of the current chunk in ess-noweb-CHUNK-VECTOR. (defalias 'ess-noweb-find-chunk-index-buffer #[nil "\301\302GS\"\207" [ess-noweb-chunk-vector ess-noweb-find-chunk-index 0] 3 (#$ . 17204)]) (defalias 'ess-noweb-find-chunk-index #[(low hi) " TU\203 \207 \\\304\245` \nHAW\203\305 \n\"\202#\305\n\")\207" [hi low med ess-noweb-chunk-vector 2 ess-noweb-find-chunk-index] 3]) #@73 Return a pair consisting of the beginning and end of the current chunk. (defalias 'ess-noweb-chunk-region #[nil "\302 \303 HA!\303 THA!)B\207" [start ess-noweb-chunk-vector ess-noweb-find-chunk-index-buffer marker-position] 4 (#$ . 17608) nil]) #@133 Copy the current code chunk to the kill ring, excluding the chunk name. This will be particularly useful when interfacing with ESS. (defalias 'ess-noweb-copy-code-chunk #[nil "\301 \212@b\210\302 \205\303\304!\210\305`A\"*\207" [r ess-noweb-chunk-region ess-noweb-in-code-chunk beginning-of-line 2 copy-region-as-kill] 3 (#$ . 17863) nil]) #@122 Create a new buffer with the same name as the current code chunk, and copy all code from chunks of the same name to it. (defalias 'ess-noweb-extract-code-chunk #[nil "\212\306 \205m\307 @\310\211\311p\312\f!\203 \313\311!\210\314\f!\210\315\f!\210\316\317\f\"\210 G\320ZW\203`\321 !\316\322 @\"\210\f @\232\203Y\nT Ab\210\323 \210\fq\210db\210\324 \210q\210 T\211\202*\316\325\n\"\210\fq\210\326ed\"-)\207" [oldbuf this-chunk copy-counter chunk-counter chunk-name ess-noweb-chunk-vector ess-noweb-in-code-chunk ess-noweb-find-chunk 0 nil get-buffer set-buffer-modified-p kill-buffer get-buffer-create message "Created buffer %s" 2 ess-noweb-chunk-vector-aref "Current buffer is %s" ess-noweb-copy-code-chunk yank "Copied %d bits" copy-region-as-kill] 6 (#$ . 18215) nil]) #@105 Return a pair consisting of the beginning and end of the current pair of documentation and code chunks. (defalias 'ess-noweb-chunk-pair-region #[nil "\303 \211T\304!\203\305\nSHA!\305\n HA!B\2027\304 !\204) T\202\305\nHA!\305\n THA!B*\207" [start end ess-noweb-chunk-vector ess-noweb-find-chunk-index-buffer ess-noweb-chunk-is-code marker-position] 5 (#$ . 19010) nil]) (defalias 'ess-noweb-chunk-vector-aref #[(i) "\302W\203\n\303\304!\210 \204\305 \210 GY\203\303\306!\210 H\207" [i ess-noweb-chunk-vector 0 error "Before first chunk." ess-noweb-update-chunk-vector "Beyond last chunk."] 2]) #@47 Complete the chunk name before point, if any. (defalias 'ess-noweb-complete-chunk #[nil "\306 \203\240`\212\307\310\212\311 \210`)\312#\205\313\225)\203\233 {\314 \315\n \"\211\312=\206\227\f\204=\316\317\n\"\210\320 \202\227\n\f\230\204V |\210\fc\210\321\322!?\205\227\322c\202\227\316\323!\210 \"r\324\325!q\210p\326 \210\"\327\211#$\312\211%\312&'\330 \210\331\332!\210+\211()\333\334\n \"!\210\335(!\210+\316\336\337\"+\202\236\316\340!*\207\316\341!\207" [beg end pattern alist completion default-directory ess-noweb-in-code-chunk re-search-backward "<<" beginning-of-line t 0 ess-noweb-build-chunk-alist try-completion message "Can't find completion for \"%s\"" ding looking-at ">>" "Making completion list..." get-buffer-create "*Completions*" kill-all-local-variables nil erase-buffer run-hooks temp-buffer-setup-hook display-completion-list all-completions internal-temp-output-buffer-show "Making completion list...%s" "done" "Not at chunk name..." "Not in code chunk..." #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 6 (#$ . 19630) nil]) #@223 Replace all non blank characters in [[...]] code quotes in the current buffer (you might want to narrow to the interesting region first) by `*'. Return a list of pairs with the position and value of the original strings. (defalias 'ess-noweb-hide-code-quotes #[nil "\212\305eb\210\306\307\305\310#\203`\311\225\306\312\305\313#\203\311\224\202d\211b\210` W\203\\\314 w\210`\315 w\210` \fV\203X\212\316 !\f {BB\fb\210\317\320 \fZ\313#\210\321 \fZ!\210)*\202#*\202\322!*\207" [quote-list end beg e b nil re-search-forward "\\[\\[" move 0 "\\]\\]" t " \n" "^ \n" copy-marker insert-char 42 delete-char reverse] 6 (#$ . 20805)]) #@64 Reinsert the strings modified by `ess-noweb-hide-code-quotes'. (defalias 'ess-noweb-restore-code-quotes #[(quote-list) "\212\301\302\")\207" [quote-list mapcar #[(q) "\303@!\212 b\210\304\305x\210`)\211 |\210\nb\210Ac*\207" [q e b marker-position "*" nil] 3]] 3 (#$ . 21457)]) #@121 Fill the current chunk according to mode. Run `fill-region' on documentation chunks and `indent-region' on code chunks. (defalias 'ess-noweb-fill-chunk #[nil "\212\214\305 \210\306 \203@eb\210\307y\210`db\210\310y\210\311\312!\203#\310y\210\202\307y\210`}\210\2041 \2039\313ed\314#\202W\315\316\n\"\202W \203S\317 \320ed\"\210\321\f!)\202W\320ed\"*\207" [indent-region-function indent-line-function major-mode ess-noweb-code-quotes-handling quote-list ess-noweb-narrow-to-chunk ess-noweb-in-code-chunk 1 -1 looking-at "@" indent-region nil error "No indentation functions defined in %s!" ess-noweb-hide-code-quotes fill-region ess-noweb-restore-code-quotes] 4 (#$ . 21746) nil]) #@89 If region fits inside current chunk, narrow to chunk and then indent according to mode. (defalias 'ess-noweb-indent-region #[(beg end) "\306 \307 HA!\307 THA!\n\fW\203@ V\203@\212\214\f\nb\210\310y\210`] b\210\311y\210`^\f }\210\312\f \"*\202D\312\f \"+\207" [inx ess-noweb-chunk-vector ch-beg ch-end beg end ess-noweb-find-chunk-index-buffer marker-position 1 -1 indent-region] 3 (#$ . 22443) "r"]) #@75 Indent the current line according to mode, after narrowing to this chunk. (defalias 'ess-noweb-indent-line #[nil "\300 \210\214\301 \210\302 \203-\212eb\210\303y\210`db\210\304y\210\305\306!\203&\304y\210\202\303y\210`}\210)\307 )\207" [ess-noweb-update-chunk-vector ess-noweb-narrow-to-chunk ess-noweb-in-code-chunk 1 -1 looking-at "@" indent-according-to-mode] 3 (#$ . 22861) nil]) #@40 Fill a paragraph in the current chunk. (defalias 'ess-noweb-fill-paragraph-chunk #[(&optional justify) "\303 \210\212\214\304 \210\305 \2032eb\210\306y\210`db\210\307y\210\310\311!\203&\307y\210\202\306y\210`}\210\312!\202G \203D\313 \312!\210\314\n!)\202G\312!*\207" [justify ess-noweb-code-quotes-handling quote-list ess-noweb-update-chunk-vector ess-noweb-narrow-to-chunk ess-noweb-in-code-chunk 1 -1 looking-at "@" fill-paragraph ess-noweb-hide-code-quotes ess-noweb-restore-code-quotes] 3 (#$ . 23255) "P"]) #@33 Replacement for `do-auto-fill'. (defalias 'ess-noweb-auto-fill-doc-chunk #[nil "\214\302 @\212\303\210`)}\210\203\304 \305 \210\306 !)\202\305 )\207" [ess-noweb-code-quotes-handling quote-list ess-noweb-chunk-region nil ess-noweb-hide-code-quotes do-auto-fill ess-noweb-restore-code-quotes] 2 (#$ . 23785)]) #@57 Install the improved auto fill function, iff necessary. (defalias 'ess-noweb-auto-fill-doc-mode #[nil "\205\301\211\207" [auto-fill-function ess-noweb-auto-fill-doc-chunk] 2 (#$ . 24106)]) #@63 Replacement for do-auto-fill. Cancel filling in chunk headers (defalias 'ess-noweb-auto-fill-code-chunk #[nil "\212\300 \210\301\302!)?\205\303 \207" [beginning-of-line looking-at "<<" do-auto-fill] 2 (#$ . 24305)]) #@56 Install the default auto fill function, iff necessary. (defalias 'ess-noweb-auto-fill-code-mode #[nil "\205\301\211\207" [auto-fill-function ess-noweb-auto-fill-code-chunk] 2 (#$ . 24529)]) #@25 Mark the current chunk. (defalias 'ess-noweb-mark-chunk #[nil "\301 \211@b\210\302A\303\304#)\207" [r ess-noweb-chunk-region push-mark nil t] 5 (#$ . 24729) nil]) #@57 Mark the current pair of documentation and code chunks. (defalias 'ess-noweb-mark-chunk-pair #[nil "\301 \211@b\210\302A\303\304#)\207" [r ess-noweb-chunk-pair-region push-mark nil t] 5 (#$ . 24900) nil]) #@151 Toggle if we should narrow the display to the current pair of documentation and code chunks after each movement. With argument: switch narrowing on. (defalias 'ess-noweb-toggle-narrowing #[(&optional arg) "\204 \204 \302\303 \207\304~\207" [arg ess-noweb-narrowing t ess-noweb-narrow-to-chunk-pair nil] 1 (#$ . 25114) "P"]) #@42 Narrow the display to the current chunk. (defalias 'ess-noweb-narrow-to-chunk #[nil "\301 \211@A})\207" [r ess-noweb-chunk-region] 3 (#$ . 25451) nil]) #@74 Narrow the display to the current pair of documentation and code chunks. (defalias 'ess-noweb-narrow-to-chunk-pair #[nil "\301 \211@A})\207" [r ess-noweb-chunk-pair-region] 3 (#$ . 25611) nil]) #@25 Kill the current chunk. (defalias 'ess-noweb-kill-chunk #[nil "\301 \302@A\")\207" [r ess-noweb-chunk-region kill-region] 3 (#$ . 25813) nil]) #@34 Kill the current pair of chunks. (defalias 'ess-noweb-kill-chunk-pair #[nil "\301 \302@A\")\207" [r ess-noweb-chunk-pair-region kill-region] 3 (#$ . 25965) nil]) #@43 Place the current chunk on the kill ring. (defalias 'ess-noweb-copy-chunk-as-kill #[nil "\301 \302@A\")\207" [r ess-noweb-chunk-region copy-region-as-kill] 3 (#$ . 26136) nil]) #@52 Place the current pair of chunks on the kill ring. (defalias 'ess-noweb-copy-chunk-pair-as-kill #[nil "\301 \302@A\")\207" [r ess-noweb-chunk-pair-region copy-region-as-kill] 3 (#$ . 26322) nil]) #@23 Return the sign of N. (defalias 'ess-noweb-sign #[(n) "\301W\203\302\207\303\207" [n 0 -1 1] 2 (#$ . 26527)]) #@49 Goto to the Nth documentation chunk from point. (defalias 'ess-noweb-next-doc-chunk #[(&optional cnt) "~\210\304 \305\306\n!X\203+\307\n! \\\310 !\203$\307\n! \\\202T\211\202\311\312 !A!b\210\305u\210* \205=\313 \207" [i start cnt ess-noweb-narrowing ess-noweb-find-chunk-index-buffer 1 abs ess-noweb-sign ess-noweb-chunk-is-code marker-position ess-noweb-chunk-vector-aref ess-noweb-narrow-to-chunk-pair] 4 (#$ . 26646) "p"]) #@50 Goto to the -Nth documentation chunk from point. (defalias 'ess-noweb-previous-doc-chunk #[(&optional n) "\301[!\207" [n ess-noweb-next-doc-chunk] 2 (#$ . 27093) "p"]) #@40 Goto to the Nth code chunk from point. (defalias 'ess-noweb-next-code-chunk #[(&optional cnt) "~\210\304 \305\306\n!X\203+\307\n! \\\310 !\204$\307\n! \\\202T\211\202\311\312 !A!b\210\305y\210* \205=\313 \207" [i start cnt ess-noweb-narrowing ess-noweb-find-chunk-index-buffer 1 abs ess-noweb-sign ess-noweb-chunk-is-code marker-position ess-noweb-chunk-vector-aref ess-noweb-narrow-to-chunk-pair] 4 (#$ . 27268) "p"]) #@41 Goto to the -Nth code chunk from point. (defalias 'ess-noweb-previous-code-chunk #[(&optional n) "\301[!\207" [n ess-noweb-next-code-chunk] 2 (#$ . 27707) "p"]) #@122 If in a documentation chunk, goto to the Nth documentation chunk from point, else goto to the Nth code chunk from point. (defalias 'ess-noweb-next-chunk #[(&optional n) "\301 \203 \302!\207\303!\207" [n ess-noweb-in-code-chunk ess-noweb-next-code-chunk ess-noweb-next-doc-chunk] 2 (#$ . 27876) "p"]) #@124 If in a documentation chunk, goto to the -Nth documentation chunk from point, else goto to the -Nth code chunk from point. (defalias 'ess-noweb-previous-chunk #[(&optional n) "\301[!\207" [n ess-noweb-next-chunk] 2 (#$ . 28186) "p"]) #@2  (defvar ess-noweb-chunk-history nil (#$ . 28426)) #@23 Goto the named chunk. (defalias 'ess-noweb-goto-chunk #[nil "~\210\305\306 \307\310\311\312\313\314 \"\"\315\305\315\n\316 &\317 \"Ab\210+\f\205'\320 \207" [completion-ignore-case alist ess-noweb-chunk-history chunk ess-noweb-narrowing t ess-noweb-build-chunk-alist ess-completing-read "Chunk" delete "" mapcar car nil ess-noweb-goto-chunk-default assoc ess-noweb-narrow-to-chunk-pair] 8 (#$ . 28483) nil]) (defalias 'ess-noweb-goto-chunk-default #[nil "\212\300\301\212\302 \210`)\303#\203\304\224b\210\305\306\212\307\210`)\310#\205$\311\224\311\225{)\207" [re-search-backward "<<" beginning-of-line move 0 re-search-forward "<<\\(.*\\)>>" nil t 1] 4]) (defalias 'ess-noweb-build-chunk-alist #[nil "\204\306 \210\307GS \310Y\2037 H\211@ A\f;\203/\311\f\n\"\204/\f B\nB+ S\211\202\n*\207" [ess-noweb-chunk-vector i alist chunk name marker ess-noweb-update-chunk-vector nil 0 assoc] 4]) #@45 Goto the continuation of the current chunk. (defalias 'ess-noweb-goto-next #[(&optional cnt) "~\210\204 \306 \210\307 \310 !\204 T\310 !\203U\311 !@\312\n\313\f!X\203I\314\f! \\\311 !@ \232\204B\314\f! \\\2020\nT\211\202#\315\311 !A!b\210\312y\210*) \205\\\316 \207" [ess-noweb-chunk-vector start i name cnt ess-noweb-narrowing ess-noweb-update-chunk-vector ess-noweb-find-chunk-index-buffer ess-noweb-chunk-is-code ess-noweb-chunk-vector-aref 1 abs ess-noweb-sign marker-position ess-noweb-narrow-to-chunk-pair] 4 (#$ . 29403) "p"]) #@26 Goto the previous chunk. (defalias 'ess-noweb-goto-previous #[(&optional cnt) "\301[!\207" [cnt ess-noweb-goto-next] 2 (#$ . 29960) "p"]) #@90 Find all occurences of the current chunk. This function simply runs OCCUR on "<>". (defalias 'ess-noweb-occur #[(arg) "\203 \247\203 \202\304\305 \306 !\203'\307\310\311 H@\312Q!\n\"\202B T\306 !\2046 T\202*\307\310\311 H@\312Q!\n\"*\207" [arg idx n ess-noweb-chunk-vector 0 ess-noweb-find-chunk-index-buffer ess-noweb-chunk-is-code occur regexp-quote "<<" ">>"] 5 (#$ . 30105) "P"]) #@21 Insert a new chunk. (defalias 'ess-noweb-new-chunk #[(name) "\301\302\261\210\212\303c\210)\304 \207" [name "@ \n<<" ">>=\n" "@ %def \n" ess-noweb-update-chunk-vector] 3 (#$ . 30518) "sChunk name: "]) (defalias 'ess-noweb-at-beginning-of-line #[nil "\212\300 \210`)`\232\207" [beginning-of-line] 2]) #@240 Smart incarnation of `@', starting a new documentation chunk, maybe. If given an numerical argument, it will act just like the dumb `@'. Otherwise and if at the beginning of a line in a code chunk: insert "@ " and update the chunk vector. (defalias 'ess-noweb-electric-@ #[(arg) "\203\301\247\203\202\302!\207\303 \203!\304 \203!\305c\210\306 \207\301\302!\207" [arg self-insert-command 1 ess-noweb-at-beginning-of-line ess-noweb-in-code-chunk "@ " ess-noweb-update-chunk-vector] 2 (#$ . 30827) "P"]) #@317 Smart incarnation of `<', starting a new code chunk, maybe. If given an numerical argument, it will act just like the dumb `<'. Otherwise and if at the beginning of a line in a documentation chunk: insert "<<>>=", a closing "@" and a newline if necessary. Leave point in the middle and and update the chunk vector. (defalias 'ess-noweb-electric-< #[(arg) "\203\301\247\203\202\302!\207\303 \203/\304 \204/\305c\210\212\306c\210\307\310!\204+\311 \210)\312 \207\301\302!\207" [arg self-insert-command 1 ess-noweb-at-beginning-of-line ess-noweb-in-code-chunk "<<" ">>=\n@ " looking-at "\\s *$" newline ess-noweb-update-chunk-vector] 2 (#$ . 31346) "P"]) #@51 Set the ess-noweb-code-mode for the current chunk (defalias 'ess-noweb-set-chunk-code-mode #[nil "\304 \203<\305\211\212\214\305\210\306\307\305\310#\210\311\312!~\210eb\210\313\314\315\n!\316Q\305\310#\210\317\320!\210\321 \322 !\205: \211,\207\323\324!\207" [ess-noweb-default-code-mode ess-noweb-code-mode chunk-name mode ess-noweb-in-code-chunk nil re-search-backward "^[ ]*<<\\(.*\\)>>=" t match-string 1 re-search-forward "^<<" regexp-quote ">>=" beginning-of-line 2 ess-noweb-in-mode-line functionp error "This only makes sense in a code chunk"] 4 (#$ . 32017) nil]) #@66 Sets the doc-mode syntax-table to treat code quotes as comments. (defalias 'ess-noweb-set-doc-syntax-table #[nil "\302\303z!\211\304\230\203\305\303\306 #\210\305\307\310 #\202(\305\303\311P #\210\305\307\312P #)\207" [square-bracket-string ess-noweb-doc-mode-syntax-table char-to-string 91 "(" modify-syntax-entry "(]12b" 93 ")[34b" " 12b" " 34b"] 5 (#$ . 32608) nil]) #@67 Select ess-noweb-DOC-MODE or ess-noweb-CODE-MODE, as appropriate. (defalias 'ess-noweb-select-mode #[nil "\306 \211 \232?\205P\307 \203(\310 \210\n \232\204M \210\311\312!\210\311\313!\210\202M\n\f\232\2041\f \210 \204A\314\315!\210\316\317 !\320 \210\321 !\210\311\312!\210\311\322!\210\311\323!)\207" [this-chunk-index ess-noweb-last-chunk-index major-mode ess-noweb-code-mode ess-noweb-doc-mode ess-noweb-doc-mode-syntax-table ess-noweb-find-chunk-index-buffer ess-noweb-in-code-chunk ess-noweb-set-chunk-code-mode run-hooks ess-noweb-select-mode-hook ess-noweb-select-code-mode-hook message "Setting up syntax table" make-syntax-table syntax-table ess-noweb-set-doc-syntax-table set-syntax-table ess-noweb-select-doc-mode-hook ess-noweb-changed-chunk-hook] 3 (#$ . 32990) nil]) #@57 Change the major mode for editing documentation chunks. (defalias 'ess-noweb-set-doc-mode #[(mode) "\304 S\305 \207" [mode ess-noweb-doc-mode ess-noweb-doc-mode-syntax-table ess-noweb-last-chunk-index nil ess-noweb-select-mode] 1 (#$ . 33789) "CNew major mode for documentation chunks: "]) #@52 Change the major mode for editing all code chunks. (defalias 'ess-noweb-set-code-mode #[(mode) "\nS\303 \207" [mode ess-noweb-default-code-mode ess-noweb-last-chunk-index ess-noweb-select-mode] 1 (#$ . 34089) "CNew major mode for all code chunks: "]) #@120 Change the major mode for editing this code chunk. The only sensible way to do this is to add a mode line to the chunk (defalias 'ess-noweb-set-this-code-mode #[(mode) "\306 \203a\212\214\307~\210\307\210\310\311\307\312#\210\313\314!eb\210\315\316\317\n!\320Q\307\312#\210\321\322!\210)\323 \2038\324 \210\324 \210 \232\204Y\325!\326\327O \210\330\304!\204P\331\f\332\332 \333\261\210S\211*\207\334\335!\207" [mode ess-noweb-code-mode chunk-name ess-noweb-default-code-mode comment-start comment-end ess-noweb-in-code-chunk nil re-search-backward "^[ ]*<<\\(.*\\)>>=" t match-string 1 re-search-forward "^<<" regexp-quote ">>=" beginning-of-line 2 ess-noweb-in-mode-line kill-line symbol-name 0 -5 boundp "#" " -*- " "\n" message "This only makes sense in a code chunk." ess-noweb-last-chunk-index] 6 (#$ . 34350) "CNew major mode for this code chunk: "]) #@44 Echo the RCS identification of noweb mode. (defalias 'ess-noweb-mode-version #[nil "\301\302\"\207" [ess-version message "Thorsten's ess-noweb-mode, now part of ESS version %s"] 3 (#$ . 35234) nil]) #@22 Describe noweb mode. (defalias 'ess-noweb-describe-mode #[nil "\300\301!\207" [describe-function ess-noweb-mode] 2 (#$ . 35440) nil]) #@248 Insert line that will set the noweb mode of this file in emacs. The file is set to use the current doc and default-code modes, so ensure they are set correctly (with ess-noweb-set-code-mode and ess-noweb-set-doc-mode) before calling this function (defalias 'ess-noweb-insert-default-mode-line #[nil "\212\306b\210\307 \203\310 \210\310 \210 =\204\311 \210\n\312\313 ! \f=\204,\314\313 !\315Q\202-\315\316 \317\261\210)\311 \207" [major-mode ess-noweb-doc-mode comment-start ess-noweb-default-code-mode ess-noweb-default-doc-mode comment-end 1 ess-noweb-in-mode-line kill-line ess-noweb-select-mode " -*- mode: noweb; ess-noweb-default-code-mode: " symbol-name "; ess-noweb-doc-mode: " ";" " -*-" "\n"] 7 (#$ . 35581) nil]) (defalias 'ess-noweb-mouse-first-button #[(event) "\303!\210 \205X\212\304\210\305\306\304\307#)\212\310 \210`)=\205X`\311\224W\2036\312\311\224\311\225\"\305\313\314\n!\315Q\304\307#)\207\311\225`X\205X\311\211\225\\`V\205X\312\311\224\311\225\"\316\313\314\n!\315Q\304\307#)\207" [event ess-noweb-use-mouse-navigation chunk-name mouse-set-point nil re-search-backward "^[ ]*\\(<<\\)\\(.*\\)\\(>>\\)" t beginning-of-line 2 buffer-substring-no-properties "<<" regexp-quote ">>" re-search-forward] 4 nil "e"]) (defalias 'ess-noweb-log #[(s) "p\303\304\305!!\210db\210\306\nc\210\307\303!)\207" [b buffer-read-only s switch-to-buffer get-buffer-create "*noweb-log*" nil t] 3]) #@1069 A list of threads in the current buffer. Each entry in the list contains 5 elements: 1) The name of the threads 2) The name of the immdiate parent thread in which it is used (nil if it is a "top-level" thread which is not used anywhere). 3) The name of the top-level parent thread in which it is used (i.e. a thread in which it is used but which is not itself used anywhere: nil if this thread is not used anywhere. 4) The format string to use to define line numbers in the output file of this thread. Should only be set if this thread is not used anywhere: if a thread is used as part of another thread, the parent thread's format string should be used. 5) If this is nil, tabs are converted to spaces in the tangled file. If it is a number, tabs are copied to the tangled file unchanged, and tabs are also used for indentation, with the number of spaces per tab defined by this number. This MUST be set in order to tangle makefiles, which depend on tabs.Should only be set if this thread is not used anywhere. otherwise set to nil.  (defvar ess-noweb-thread-alist nil (#$ . 37009)) #@1078 Updates the list of threads in the current buffer. Each entry in the list contains 5 elements: 1) The name of the thread 2) The name of the immdiate parent thread in which it is used (nil if it is a "top-level" thread which is not used anywhere). 3) The name of the top-level parent thread in which it is used (i.e. a thread in which it is used but which is not itself used anywhere: nil if this thread is not used anywhere. 4) The format string to use to define line numbers in the output file of this thread. Should only be set if this thread is not used anywhere: if a thread is used as part of another thread, the parent thread's format string should be used. 5) If this is nil, tabs are converted to spaces in the tangled file. If it is a number, tabs are copied to the tangled file unchanged, and tabs are also used for indentation, with the number of spaces per tab defined by this number. This MUST be set in order to tangle makefiles, which depend on tabs.Should only be set if this thread is not used anywhere. otherwise set to nil.  (defalias 'ess-noweb-update-thread-alist #[nil "\212eb\210\306\211\211\211\211\307\310\306\311#\203k\312\224b\210\313\224\203=\314\315\224\315\225\"\316 \f\"\204d \317\320\306\"BC\321\f \"\202d\314\315\224\315\225\"\316\n\f\"\211\203U A \240\210\202d\n \317\322\306\"BBC\321\f \"\323\313!\210\202\312\306\211\211\fGSX\203\276\f8\316A@\f\"\211A@\306=\204\234\316 A@\f\"\211\202\212@A@ @AABBB\321C\"T\211\202t+\211.\207" [new-thread-alist current-thread chunk-use-name thread-list-entry thread-alist this-thread-parent nil re-search-forward "^[ ]*<<\\(.*\\)>>\\(=\\)?" t 0 2 buffer-substring-no-properties 1 assoc make-list 4 append 3 beginning-of-line this-thread thread-counter ess-noweb-thread-alist] 6 (#$ . 38134) nil]) (defalias 'ess-noweb-set-thread-line-format #[nil "\300\207" [nil] 1]) (defalias 'ess-noweb-set-thread-tabs #[nil "\300\207" [nil] 1]) #@100 The format string to use to define line numbers in this thread. If nil, do not use line numbers. (defvar ess-noweb-default-line-number-format nil (#$ . 40134)) #@159 The number of initial lines to output before the line number. This may be useful in shell scripts, where the first line (or two) must have a specific form. (defvar ess-noweb-default-line-number-skip-lines 0 (#$ . 40303)) #@118 If a number, convert tabs to that number of spaces in the output. If nil, let tabs through to the output unaltered. (defvar ess-noweb-default-tab-width 8 (#$ . 40533)) #@100 The format string to use to define line numbers in this thread. If nil, do not use line numbers. (defvar ess-noweb-line-number-format ess-noweb-default-line-number-format (#$ . 40709)) #@159 The number of initial lines to output before the line number. This may be useful in shell scripts, where the first line (or two) must have a specific form. (defvar ess-noweb-line-number-skip-lines ess-noweb-default-line-number-skip-lines (#$ . 40903)) #@118 If a number, convert tabs to that number of spaces in the output. If nil, let tabs through to the output unaltered. (defvar ess-noweb-tab-width ess-noweb-default-tab-width (#$ . 41164)) #@61 Get the values of the variables that are local to a thread. (defalias 'ess-noweb-get-thread-local-variables #[nil "\212\214\306\210\307\310\306\311#\210\312\313!~\210eb\210\314\315\316!\317Q\306\311#\210\320\321!\210\322\323!\205m\324`\306\210`\"\325\326 \"\203=\327\313 \"\325\330 \"\203I\327\313 \"\325\331 \"\203W\332\327\313 \"!\325\333 \"\203e\332\327\313 \"!\320\321!\210)\202#+\207" [chunk-name this-line ess-noweb-code-mode ess-noweb-line-number-format ess-noweb-line-number-skip-lines ess-noweb-tab-width nil re-search-backward "^[ ]*<<\\(.*\\)>>=" t match-string 1 re-search-forward "^<<" regexp-quote ">>=" beginning-of-line 2 looking-at ".*-*-.*-*-" buffer-substring-no-properties string-match "mode:[ ]*\\([^ ]*\\)" match-string-no-properties "ess-noweb-line-number-format:[ ]*\"\\([^\"]*\\)\"" "ess-noweb-line-number-skip-lines:[ ]*\\([^ ]*\\)" string-to-number "ess-noweb-tab-width:[ ]*\\([^ ]*\\)"] 4 (#$ . 41357) nil]) #@59 Resets the thread-local variables to their default values (defalias 'ess-noweb-reset-thread-local-variables #[nil "\n\f\211\207" [ess-noweb-default-tab-width ess-noweb-tab-width ess-noweb-default-line-number-format ess-noweb-line-number-format ess-noweb-default-line-number-skip-lines ess-noweb-line-number-skip-lines] 2 (#$ . 42322)]) (defalias 'ess-noweb-write-line-number #[(line-number-format buffer) "\205M\303e`\"\304\305\"\203\306\307\310 \"\311\211\312%\202 \304\313\"\2034\306\307\314\315 \"\311\211\312%\202\304\316\"\203F\306\317\311\211\312%\2024r\nq\210c*\207" [line-number-format this-line buffer count-lines string-match ".*\\(%L\\).*" replace-match format "%d" t 1 ".*\\(%F\\).*" "%s" buffer-file-name ".*\\(%N\\).*" "\n"] 6]) #@77 Generate the code produced by this chunk, & any threads used in this chunk. (defalias 'ess-noweb-tangle-chunk #[(&optional buffer prefix-string) "\212\306 \210\307 \210\310 \210\311\210\312\313\311\314#\210\315 \210`\316\317\311\314#\210\315\320!\210`\321\322\225\322\224\"\323\n \"\324\f8\325\f8.\311\211/0\3111\3142\326\327!3 b\210\330\331!\203Z\315\320!\210\202M.\203}4\332V\203\204\3333`\212\311\210`)#\210\315\320!\2104S\210\202_\334.5\"\210\335\336`\"\210`W\203=\337`\212\315\320!\210`)\"\210\330\340!\203\370\212\214\341\342\343\320!!\344Q/\343\322!16\203\27561P1\343\324!0~\210eb\210\312/\311\314#\203\335\34531\"\210\322y\210\202\307)0\203\364r3q\210\346u\2100c\210\315\320!\210))\202!`\212\315\320!\210`){16\2031G\322V\20361P1r3q\2101c\210)2\20366\2036\3476G\350\"6\3112\315\320!\210\202\211r3q\210eb\210\312\351\311\314#\203Y\352\341\311\211#\210\325u\210\202E \203h 7\353ed\"\210\202m\337ed\"\210)5\205\202r5q\210\3543!\210\3553!).\f\207" [chunk-end chunk-start chunk-name ess-noweb-thread-alist thread-info thread-tabs ess-noweb-reset-thread-local-variables ess-noweb-get-thread-local-variables ess-noweb-update-chunk-vector nil re-search-forward "^@" t beginning-of-line re-search-backward "^<<\\([^>]*\\)>>=$" 2 buffer-substring-no-properties 1 assoc 4 3 generate-new-buffer "Tangle Buffer" looking-at ".*-\\*-.*-\\*-" 0 append-to-buffer ess-noweb-write-line-number message "Now at %d" untabify "\\([^\n\"@]*\\)<<\\(.*\\)\\(>>\\)\\([^\n\"]*\\)$" "<<" regexp-quote match-string ">>=" ess-noweb-tangle-chunk -1 make-string 32 "@<<" replace-match tabify insert-buffer-substring kill-buffer line-number-format thread-name-re post-chunk pre-chunk first-line tangle-buffer ess-noweb-line-number-skip-lines buffer prefix-string tab-width] 5 (#$ . 43096) nil]) #@133 Given the name of a thread, tangles the thread to buffer. If no buffer is given, create a new one with the same name as the thread. (defalias 'ess-noweb-tangle-thread #[(name &optional buffer) "\204\303 !rq\210\304 \210)\212eb\210\305\306\307\310\311#\2055\312\313! \230\203\nT\314\315\n\"\210\316!\210\202*\207" [buffer name chunk-counter get-buffer-create erase-buffer 0 re-search-forward "^<<\\(.*\\)>>=[ ]*" nil t match-string 1 message "Found %d chunks" ess-noweb-tangle-chunk] 4 (#$ . 44947) "sWhich thread ? "]) (defalias 'ess-noweb-tangle-current-thread #[(&optional buffer) "\212\303\304\305\306#\210\307\310!\210`\311\312\225\312\224\"\313 \n\"+\207" [chunk-start chunk-name buffer re-search-backward "^<<\\([^>]*\\)>>=[ ]*$" nil t beginning-of-line 2 buffer-substring-no-properties 1 ess-noweb-tangle-thread] 4 nil nil]) (byte-code "\300\301!\210\302\303!\207" [run-hooks ess-noweb-mode-load-hook provide ess-noweb-mode] 2)