Files
emacsd/elpa/ac-js2-20190101.933/ac-js2.elc

128 lines
21 KiB
Plaintext
Raw Normal View History

2019-10-09 20:36:55 +02:00
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\305\306\307\310\311\312\313\314&\210\315\316\317\320#\210\315\321\317\322#\210\315\323\317\324#\210\315\325\317\326#\210\315\327\330\331#\210\315\332\307\333#\210\315\334\317\335#\207" [require js2-mode skewer-mode cl-lib etags custom-declare-group ac-js2 nil "Auto-completion for js2-mode." :group completion :prefix "ac-js2-" custom-declare-variable ac-js2-add-ecma-262-externs t "If non-nil add `js2-ecma-262-externs' to completion candidates." ac-js2-add-browser-externs "If non-nil add `js2-browser-externs' to completion candidates." ac-js2-add-keywords "If non-nil add `js2-keywords' to completion candidates." ac-js2-add-prototype-completions "When non-nil traverse the prototype chain adding to completion candidates." ac-js2-external-libraries 'nil "List of absolute paths to external Javascript libraries." ac-js2-evaluate-calls "Warning. When true function calls will be evaluated in the browser.\nThis may cause undesired side effects however it will\n provide better completions. Use at your own risk." ac-js2-force-reparse "Force Js2-mode to reparse buffer before fetching completion candidates."] 8)
#@42 Cached string version of `js2-keywords'.
(defvar ac-js2-keywords nil (#$ . 1591))
(defvar ac-js2-candidates nil)
(defconst ac-js2-method-eval 0)
#@135 Return candidates for the global object.
Only keys of the object are returned as the other properties come
from js2-mode's externs.
(defconst ac-js2-method-global 1 (#$ . 1743))
#@60 Location of data files needed for `ac-js2-on-skewer-load'.
(defvar ac-js2-data-root (file-name-directory load-file-name) (#$ . 1929))
#@36 Cadidates obtained from skewering.
(defvar ac-js2-skewer-candidates nil (#$ . 2069))
#@65 Inject skewer addon and evaluate external libraries in browser.
(defalias 'ac-js2-on-skewer-load #[nil "\303\304\305\"!\210 \205\306\307\n\"\207" [ac-js2-data-root ac-js2-evaluate-calls ac-js2-external-libraries insert-file-contents expand-file-name "skewer-addon.js" mapcar #[(library) "\302\303!rq\210\304\216\305\306 !!\210\307\310 \311\312\313$+\207" [#1=#:temp-buffer library generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] insert-file-contents expand-file-name skewer-eval buffer-string nil :type "complete"] 5]] 4 (#$ . 2160)])
#@39 Get completions returned from skewer.
(defalias 'ac-js2-skewer-completion-candidates #[nil "\301\302\"\207" [ac-js2-skewer-candidates mapcar #[(candidate) "\301@!\207" [candidate symbol-name] 2]] 3 (#$ . 2752)])
#@46 Return document string for NAME from skewer.
(defalias 'ac-js2-skewer-document-candidates #[(name) "\303 \"A\304\n!\206 \n)\207" [name ac-js2-skewer-candidates doc assoc-string ac-js2-format-function] 3 (#$ . 2972)])
#@41 Find properties of NAME for completion.
(defalias 'ac-js2-get-object-properties #[(name) "\302\303 BC\"\207" [name ac-js2-add-prototype-completions ac-js2-skewer-eval-wrapper prototypes] 4 (#$ . 3198)])
#@45 Process the RESULT passed from the browser.
(defalias 'ac-js2-skewer-result-callback #[(result) "\303\301\"A\304!\205 \205\305 \306\"\211)\207" [result value ac-js2-skewer-candidates assoc skewer-success-p append nil] 3 (#$ . 3408)])
#@359 Wrap `skewer-eval-synchronously' to check if a skewer-client is avilable.
STR is the text to send to the browser for evaluation. Extra
parameters can be passed to the browser using EXTRAS. EXTRAS must
be of the form (param-string . value) where param-string is the
reference and value is the value that can be retrieved from the
request object in Javacript.
(defalias 'ac-js2-skewer-eval-wrapper #[(str &optional extras) "\306 \203\n\204\307 !?\205\310\311 \312\313\314\f%!\207\306\211\207" [ac-js2-skewer-candidates skewer-clients ac-js2-evaluate-calls str extras skewer-queue nil ac-js2-has-function-calls ac-js2-skewer-result-callback skewer-eval-synchronously :type "complete" :extra] 7 (#$ . 3657)])
#@64 Main function called to gather candidates for auto-completion.
(defalias 'ac-js2-candidates #[nil "\203\306 \210\307`S!\310 !\n>\204\311\312\313 D\"\210 \314H)\315\316\315'\315(\317\320!\203\212\212\321\315x\2058`)\322 `S\"\323 !\210\324\325\f \"\203U\326\327 \f\"!\202V !'\310'!)>\203~\330\331\310'!)>\204w\311\312\332'D\"\210'\333H\"(\334\330\335(\"\336 \"\202\316\310'!*>\203\272\310'!*>\204\246\311\312\337'D\"\210'\340H'\341'!\323 !\210\336 \202\316\342\343\344+BC\"\210\334\336 \345\330\335\346 \"!\",\207" [ac-js2-force-reparse cl-x cl-struct-js2-node-tags name prop-get-regex beg js2-reparse js2-node-at-point type-of signal wrong-type-argument js2-node 5 nil "[a-zA-Z)]\\." looking-back "\\." "[a-zA-Z_$][0-9a-zA-Z_$#\"())]+\\." buffer-substring-no-properties ac-js2-get-object-properties ac-js2-initialized-node string-match reverse split-string mapcar #[(elem) "\302\303\304! >\204\305\306\307D\"\210\310H!\"\207" [elem cl-struct-js2-object-prop-node-tags ac-js2-format-node js2-node-string type-of signal wrong-type-argument js2-object-prop-node 7] 6] js2-object-node 6 append cl-first ac-js2-skewer-completion-candidates js2-prop-get-node 7 js2-node-string ac-js2-skewer-eval-wrapper "" method ac-js2-add-extra-completions ac-js2-get-names-in-scope node ac-js2-candidates cl-struct-js2-object-node-tags cl-struct-js2-prop-get-node-tags ac-js2-method-global] 6 (#$ . 4376)])
#@108 Show documentation for NAME from local buffer if present
otherwise use documentation obtained from skewer.
(defalias 'ac-js2-document #[(name) "\304 \"A\211<\203\n@\202\n\211\203 \202\305!*\207" [name ac-js2-candidates docs doc assoc ac-js2-skewer-document-candidates] 4 (#$ . 5818)])
#@47 Completion candidates for auto-complete mode.
(defalias 'ac-js2-ac-candidates #[nil "\300 \207" [ac-js2-candidates] 1 (#$ . 6121)])
#@51 Documentation to be shown for auto-complete mode.
(defalias 'ac-js2-ac-document #[(name) "\301!\207" [name ac-js2-document] 2 (#$ . 6259)])
(defalias 'ac-js2-ac-prefix #[nil "\300 \206\301 \207" [ac-prefix-default ac-prefix-c-dot] 1])
#@50 Called on `before-save-hook' to evaluate buffer.
(defalias 'ac-js2-save #[nil "\301\230\203 \302\303 !\210\304\207" [major-mode "js2-mode" ac-js2-skewer-eval-wrapper buffer-string t] 2 (#$ . 6503) nil])
#@145 Expand the function definition left of point.
Expansion will only occur for candidates whose documentation
string contain a function prototype.
(defalias 'ac-js2-expand-function #[nil "\302\303!\203 \304 \210\305\306\300!\206\307!\310!\311!\205> ;\205>\312\313 \"\205>\302\314!\205>\315\316\317\320\321\322 \323\"A@#\324Q!*\207" [word candidate featurep auto-complete ac-complete substring-no-properties thing-at-point "" ac-js2-ac-document looking-back string-match "^function" yasnippet yas-expand-snippet "(" replace-regexp-in-string "\\([a-zA-Z0-9]+\\)" #[(txt) "\301\302Q\207" [txt "${" "}"] 3] split-string "[()]" ")$0"] 8 (#$ . 6715) nil])
#@50 Setup ac-js2 to be used with auto-complete-mode.
(defalias 'ac-js2-setup-auto-complete-mode #[nil "\301\302\300\"\210\303 \210\304\305\306\307\"\207" [ac-source-js2 add-to-list ac-sources auto-complete-mode ((candidates . ac-js2-ac-candidates) (document . ac-js2-ac-document) (prefix . ac-js2-ac-prefix) (requires . -1)) defalias ac-complete-js2 #[nil "\300\301!\207" [auto-complete (ac-source-js2)] 2 nil nil]] 3 (#$ . 7380)])
#@38 Function for `completions-at-point'.
(defalias 'ac-js2-completion-function #[nil "\212\301\302!\203 ``B\202\303\304!\211@A\305 E*\207" [bounds looking-back "\\." bounds-of-thing-at-point word ac-js2-candidates] 4 (#$ . 7815)])
(defalias 'ac-js2-company #[(command &optional arg &rest ignored) "\305\306!\204\n\307\310!\207\311\267\202S\312\313!\207 \205T\314 \206T\315\207\316\n\317 \"\207\320\207\321\n!\211\205Q\322\323!r\fq\210\324\216 c\210\325 \210\326\327!\203K\327 \210\202N\330 \210\331 +)\207\332\207" [command ac-js2-mode arg doc #1=#:temp-buffer featurep company message "Company is not installed" #s(hash-table size 5 test eql rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (interactive 16 prefix 20 candidates 31 duplicates 37 meta 39)) company-begin-backend ac-js2-company company-grab-symbol stop all-completions ac-js2-candidates t ac-js2-document generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] js-mode fboundp font-lock-ensure font-lock-fontify-buffer buffer-string nil] 4 nil (list 'interactive)])
#@41 Build a list of names from a PROP-NODE.
(defalias 'ac-js2-build-prop-name-list #[(prop-node) "\306\211\306\307 !\f>\204\310\311!\210\307 !\f>\203\247\307\211 !\f>\204*\312\313\314 D\"\210 \315H! >\204K\312\313\316\307 !\f>\204E\312\313\314 D\"\210 \315HD\"\210\307 !\f>\204Z\312\313\314 D\"\210 \315H\317HB\307 !\f>\204q\312\313\314 D\"\210 \320H\307\n! >\203\220\307\n! >\204\214\312\313\316\nD\"\210\n\317H\307 !>\204\240\312\313\321 D\"\210 \322H\202\323 C\"+\207" [names left left-node prop-node cl-struct-js2-prop-get-node-tags cl-struct-js2-name-node-tags nil type-of error "Node is not a property prop-node" signal wrong-type-argument js2-prop-get-node 8 js2-name-node 6 7 js2-node 5 append cl-struct-js2-node-tags] 8 (#$ . 8908)])
#@235 Create a list of all of the names in the property NAME-NODE.
NAME-NODE must have a js2-prop-get-node as parent. Only adds
properties to the left of point. This is so individual jump
points can be found for each property in the chain.
(defalias 'ac-js2-prop-names-left #[(name-node) "\306\307 !\n>\204\310\311\312 D\"\210 \313H\306\211\307 !>\204/\307 !>\204/\314\315!\210\307 !>\204?\310\311\316 D\"\210 \317H\307 !>\204S\310\311\320 D\"\210 \321H\307\f!>\203~\307\f!>\204q\310\311\316\fD\"\210\f\317H\230\203~\211\202\204\322 \323\"\210 ,\207" [name name-node cl-struct-js2-node-tags parent left names nil type-of signal wrong-type-argument js2-node 5 error "Not a name node or doesn't have a prop-get-node as parent" js2-name-node 6 js2-prop-get-node 7 js2-visit-ast #[(node endp) "?\205%\304 !\n>\203$\304 !\n>\204\305\306\307 D\"\210 \310H B\211\207\311\207" [endp node cl-struct-js2-name-node-tags names type-of signal wrong-type-argument js2-name-node 6 t] 4] cl-struct-js2-prop-get-node-tags cl-struct-js2-name-node-tags] 6 (#$ . 9678)])
#@61 Check if the Javascript code in STRING has a Js2-call-node.
(defalias 'ac-js2-has-function-calls #[(string) "\303\304!rq\210\305\216 c\210\306 \3072\310\n\311\"0,\207" [#1=#:temp-buffer string ast generate-new-buffer " *temp*" #[nil "\301!\205 \302!\207" [#1# buffer-name kill-buffer] 2] js2-parse call-node js2-visit-ast-root #[(node end-p) "?\205\303 !\n>\203\304\305\306\"\207\306\207" [end-p node cl-struct-js2-call-node-tags type-of throw call-node t] 3]] 3 (#$ . 10766)])
#@38 Add extra candidates to COMPLETIONS.
(defalias 'ac-js2-add-extra-completions #[(completions) "\306 \205\n\206\307\310 \"\211\f\205  \205\n$\207" [completions ac-js2-add-keywords ac-js2-keywords js2-keywords ac-js2-add-ecma-262-externs js2-ecma-262-externs append mapcar symbol-name ac-js2-add-browser-externs js2-browser-externs] 5 (#$ . 11263)])
#@47 Return the current node or js2-ast-root node.
(defalias 'ac-js2-root-or-node #[nil "\302 \303! >\203\202\304!)\207" [node cl-struct-js2-ast-root-tags js2-node-at-point type-of js2-node-get-enclosing-scope] 2 (#$ . 11628)])
#@63 Fetches all symbols in scope and formats them for completion.
(defalias 'ac-js2-get-names-in-scope #[nil "\306 \307\203Y\310 \311!\n>\204\312\313\314D\"\210\315H\307\211 :\203= @\316\f@ \"\2046\f B A\211\202# \237+\"\311!\n>\204Q\312\313\314D\"\210\317H\211\204 \320\321 \"\211*\207" [scope result cl-struct-js2-scope-tags #1=#:--cl-var-- item #2=#:--cl-var-- ac-js2-root-or-node nil append type-of signal wrong-type-argument js2-scope 7 assoc 8 mapcar #[(x) "\303@!\304 !\305 \n\"*\207" [x name init symbol-name ac-js2-initialized-node ac-js2-format-node] 3] ac-js2-candidates] 7 (#$ . 11865)])
#@230 Return initial value assigned to NAME.
NAME may be either a variable, a function or a variable that
holds a function. NAME may also be a list of names that make up a
object property. Returns nil if no initial value can be found.
(defalias 'ac-js2-initialized-node #[(name) "<\203 \306!\202\307!\211\205%\310 !\n>\204\"\311\312\313 D\"\210 \314H\310 !\f>\2032 \202{\310 !\f>\203> \202{\310 ! >\203[\310 ! >\204U\311\312\315 D\"\210 \316H\202{\310 !>\203z\310 !>\204t\311\312\317 D\"\210 \320H\202{\321*\207" [name node cl-struct-js2-node-tags parent cl-struct-js2-function-node-tags cl-struct-js2-var-init-node-tags ac-js2-find-property ac-js2-name-declaration type-of signal wrong-type-argument js2-node 5 js2-var-init-node 7 js2-assign-node 8 nil cl-struct-js2-assign-node-tags] 5 (#$ . 12498)])
#@50 Return the declaration node for node named NAME.
(defalias 'ac-js2-name-declaration #[(name) "\306 \307 \"\211\205\310\n \"\211\205'\311 !\f>\204$\312\313\314 D\"\210 \315H\211\2043\316 \n\"\2024 ,\207" [node name scope-def scope cl-struct-js2-symbol-tags symbol ac-js2-root-or-node js2-get-defining-scope js2-scope-get-symbol type-of signal wrong-type-argument js2-symbol 3 ac-js2-get-function-node] 5 (#$ . 13325)])
#@208 Format NAME and NODE for completion.
Returned format is a list where the first element is the NAME of
the node (shown in completion candidate list) and the last
element is the text to show as documentation.
(defalias 'ac-js2-format-node #[(name node) "\306! >\203\306! >\204\307\310\311D\"\210\312H\202\313\314\315\n#\306! >\203I\316\n\306! >\204<\307\310\317D\"\210\320H\321\322$\203I\323\202L\324! \f+B\207" [node cl-struct-js2-object-prop-node-tags name cl-struct-js2-function-node-tags doc name-format type-of signal wrong-type-argument js2-object-prop-node 8 replace-regexp-in-string "\"" "" cl-find js2-function-node 20 :test (lambda (name param) (string= name (js2-name-node-name param))) "Function parameter" ac-js2-format-node-doc] 8 (#$ . 13761)])
#@46 Format OBJ-NODE to display as documentation.
(defalias 'ac-js2-format-object-node-doc #[(obj-node) "\303\304 !\n>\204\305\306!\210\304 !\n>\204\307\310\311 D\"\210 \312H\211\204)\313\202.\314\315\316#)\207" [elems obj-node cl-struct-js2-object-node-tags nil type-of error "Node is not an object node" signal wrong-type-argument js2-object-node 6 "{}" mapconcat #[(x) "\301!\207" [x ac-js2-format-js2-object-prop-doc] 2] "\n"] 5 (#$ . 14548)])
#@50 Format NODE for displaying in a document string.
(defalias 'ac-js2-format-node-doc #[(node) "\205\306\212\307!b\210\310y\210`)!\311 !\n>\205\312\313 !!\311!\f>\203.\314!\202m\311! >\203<\315!\202m\311!>\203]\316\311!>\204V\317\320\321D\"\210\322H!\202m\311!>\203l\313!\202m\323 \203{ \324Q\202}+\207" [node node-above cl-struct-js2-comment-node-tags comment cl-struct-js2-function-node-tags cl-struct-js2-object-node-tags js2-node-at-point js2-node-abs-pos -1 type-of ac-js2-format-comment js2-node-string ac-js2-format-function ac-js2-format-object-node-doc ac-js2-format-node-doc signal wrong-type-argument js2-object-prop-node 8 "" "\n" cl-struct-js2-object-prop-node-tags cl-struct-js2-node-tags doc] 5 (#$ . 15007)])
#@57 Format an OBJ-PROP for displaying as a document string.
(defalias 'ac-js2-format-js2-object-prop-doc #[(obj-prop) "\304! >\204\f\305\306!\210\304! >\204\307\310\311D\"\210\312H\304! >\204.\307\310\311D\"\210\313H\314\n!\315\316 !Q*\207" [obj-prop cl-struct-js2-object-prop-node-tags left right type-of error "Node is not an object property node" signal wrong-type-argument js2-object-prop-node 7 8 js2-node-string " : " ac-js2-format-node-doc] 4 (#$ . 15776)])
#@140 Formats a function for a document string.
FUNC can be either a function node or a string starting with
'function'. Returns nil if neither.
(defalias 'ac-js2-format-function #[(func) "\303! >\203\304!\206;\205\305\306\"\307=\205\211\205*\n\307\305\310\n\"TO)\207" [func cl-struct-js2-function-node-tags str type-of js2-node-string string-match "function" 0 ")"] 6 (#$ . 16257)])
#@51 Prepare a COMMENT node for displaying in a popup.
(defalias 'ac-js2-format-comment #[(comment) "\303! >\203\304!\202\305\306\307\305\310\307\n##)\207" [comment cl-struct-js2-comment-node-tags node-string type-of js2-node-string replace-regexp-in-string "[ ]$" "" "^[ \n*/*]+"] 8 (#$ . 16656)])
#@118 Find the property definition that consists of LIST-NAMES.
Supports navigation to 'foo.bar = 3' and 'foo = {bar: 3}'.
(defalias 'ac-js2-find-property #[(list-names) "\3012 \302\303\"0\207" [js2-mode-ast prop-found js2-visit-ast-root #[(node endp) "\306! >\204\307\310\311D\"\210\312H ?\205l\306!\f>\203:\306\n! >\204:\306\n!>\204:\313!\232\204f\306!>\203k\306\n!>\203k\306!>\204\\\307\310\314D\"\210\315H@\230\203k\316\317\"\210\320)\207" [node cl-struct-js2-node-tags parent endp cl-struct-js2-prop-get-node-tags cl-struct-js2-elem-get-node-tags type-of signal wrong-type-argument js2-node 5 ac-js2-build-prop-name-list js2-name-node 6 throw prop-found t cl-struct-js2-call-node-tags list-names cl-struct-js2-name-node-tags cl-struct-js2-object-prop-node-tags] 4]] 3 (#$ . 16967)])
#@46 Return node of function named NAME in SCOPE.
(defalias 'ac-js2-get-function-node #[(name scope) "\3012 \302\303\"\210\3040\207" [scope function-found js2-visit-ast #[(node end-p) "\204 \303\n!\230\203\304\305\n\"\210\306\207" [end-p name node ac-js2-get-function-name throw function-found t] 3] nil] 3 (#$ . 17791)])
#@145 Jump to the definition of an object's property, variable or function.
Navigation to a property definend in an Object literal isn't
implemented.
(defalias 'ac-js2-jump-to-definition #[nil "\306\307 \"\210\310 \311 !\n>\204\312\313\314 D\"\210 \315H\311 !\f>\205'\316 !\311 !>\203P\311 !>\204P\311 !>\204J\312\313\317 D\"\210 \320H\202S\321\322! \203d <\203d\323 !\202h\324!\211\204u\325 \210\321\326!\210\327!b-\207" [find-tag-marker-ring node cl-struct-js2-node-tags parent cl-struct-js2-prop-get-node-tags prop-names ring-insert point-marker js2-node-at-point type-of signal wrong-type-argument js2-node 5 ac-js2-prop-names-left js2-name-node 6 error "Node is not a supported jump node" ac-js2-find-property ac-js2-name-declaration pop-tag-mark "No jump location found" js2-node-abs-pos cl-struct-js2-name-node-tags cl-struct-js2-object-prop-node-tags name node-init] 5 (#$ . 18122) nil])
#@122 Return the name of the function FN-NODE.
Value may be either function name or the variable name that holds
the function.
(defalias 'ac-js2-get-function-name #[(fn-node) "\306! >\204\307\310\311D\"\210\312H\306! >\205n\313!\206n\306\n!\f>\205n\306\211\n!\f>\2049\307\310\314\nD\"\210\n\315H! >\204Z\307\310\316\306\n!\f>\204T\307\310\314\nD\"\210\n\315HD\"\210\306\n!\f>\204i\307\310\314\nD\"\210\n\315H\315H)\207" [fn-node cl-struct-js2-node-tags parent cl-struct-js2-function-node-tags cl-struct-js2-var-init-node-tags cl-struct-js2-name-node-tags type-of signal wrong-type-argument js2-node 5 js2-function-name js2-var-init-node 6 js2-name-node] 7 (#$ . 19048)])
#@27 Keymap for `ac-js2-mode'.
(defvar ac-js2-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210)\207" [map make-sparse-keymap define-key [134217774] ac-js2-jump-to-definition [134217772] pop-tag-mark "" ac-js2-expand-function] 4) (#$ . 19734))
#@91 Non-nil if Ac-Js2 mode is enabled.
Use the command `ac-js2-mode' to change this variable.
(defvar ac-js2-mode nil (#$ . 20014))
(make-variable-buffer-local 'ac-js2-mode)
#@73 A minor mode that provides auto-completion and navigation for Js2-mode.
(defalias 'ac-js2-mode #[(&optional arg) "\305  \306=\203\n?\202\307 !\310V\311\312!\203\313 \210\314\303!\210\315 B\316\317 !\210\320\321\322\323\324$\210\320\325\326\"\210\327\330\n\203@\331\202A\332\"\210\333\334!\203f\305 \203U\305 \232\203f\335\336\337\n\203a\340\202b\341\f#\210))\342 \210\n\207" [#1=#:last-message arg ac-js2-mode completion-at-point-functions local current-message toggle prefix-numeric-value 0 featurep auto-complete ac-js2-setup-auto-complete-mode make-local-variable ac-js2-completion-function ac-js2-skewer-eval-wrapper buffer-string add-hook before-save-hook ac-js2-save nil t skewer-js-hook ac-js2-on-skewer-load run-hooks ac-js2-mode-hook ac-js2-mode-on-hook ac-js2-mode-off-hook called-interactively-p any " in current buffer" message "Ac-Js2 mode %sabled%s" "en" "dis" force-mode-line-update] 5 (#$ . 20190) (list (or current-prefix-arg 'toggle))])
(defvar ac-js2-mode-hook nil)
(byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\307\211%\210\310\311!\207" [ac-js2-mode-map ac-js2-mode-hook variable-documentation put "Hook run after entering or leaving `ac-js2-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode ac-js2-mode nil provide ac-js2] 6)