;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305!\204\306\305\307\"\210\310\311\312\313\314\315%\207" [require align comint tempo fboundp caddr defalias #[257 "\211AA@\207" [] 2 "\n\n(fn X)"] custom-declare-group erlang nil "The Erlang programming language." :group languages] 6) #@36 The version number of Erlang mode. (defconst erlang-version "2.8.4" (#$ . 380)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable erlang-root-dir funcall function #[0 "\300\207" [nil] 1] "The directory where the Erlang man pages are installed. The\nname should not contain a trailing slash.\n\nShould this variable be nil, no manual pages will show up in the\nErlang mode menu unless man pages have been downloaded by Erlang\nmode (see below).\n\nYou can download the Erlang man pages automatically by placing\nthe following lines in your Emacs init file or by executing the\nEmacs command `M-x erlang-man-download-ask RET' (the download URL\ncan be customized with the Emacs variable\nerlang-man-download-url):\n\n (require 'erlang)\n (erlang-man-download)\n\n" :group erlang :type (restricted-sexp :match-alternatives (stringp 'nil)) :safe #[257 "\211\300=\206\211;\207" [nil] 3 "\n\n(fn VAL)"]] 10) #@294 List of menu item list to combine to create Erlang mode menu. External programs which temporarily add menu items to the Erlang mode menu may use this variable. Please use the function `add-hook' to add items. Please call the function `erlang-menu-init' after every change to this variable. (defvar erlang-menu-items '(erlang-menu-base-items erlang-menu-skel-items erlang-menu-shell-items erlang-menu-compile-items erlang-menu-man-items erlang-menu-personal-items erlang-menu-version-items) (#$ . 1342)) #@720 Description of menu used in Erlang mode. This variable must be a list. The elements are either nil representing a horizontal line or a list with two or three elements. The first is the name of the menu item, the second is the function to call, or a submenu, on the same same form as ITEMS. The third optional argument is an expression which is evaluated every time the menu is displayed. Should the expression evaluate to nil the menu item is ghosted. Example: '(("Func1" function-one) ("SubItem" (("Yellow" function-yellow) ("Blue" function-blue))) nil ("Region Function" spook-function midnight-variable)) Call the function `erlang-menu-init' after modifying this variable. (defvar erlang-menu-base-items '(("Indent" (("Indent Line" erlang-indent-command) ("Indent Region " erlang-indent-region mark-active) ("Indent Clause" erlang-indent-clause) ("Indent Function" erlang-indent-function) ("Indent Buffer" erlang-indent-current-buffer))) ("Edit" (("Fill Comment" erlang-fill-paragraph) ("Comment Region" comment-region mark-active) ("Uncomment Region" uncomment-region mark-active) nil ("Beginning of Function" erlang-beginning-of-function) ("End of Function" erlang-end-of-function) ("Mark Function" erlang-mark-function) nil ("Beginning of Clause" erlang-beginning-of-clause) ("End of Clause" erlang-end-of-clause) ("Mark Clause" erlang-mark-clause) nil ("New Clause" erlang-generate-new-clause) ("Clone Arguments" erlang-clone-arguments) nil ("Align Arrows" erlang-align-arrows))) ("Syntax Highlighting" (("Level 4" erlang-font-lock-level-4) ("Level 3" erlang-font-lock-level-3) ("Level 2" erlang-font-lock-level-2) ("Level 1" erlang-font-lock-level-1) ("Off" erlang-font-lock-level-0))) ("TAGS" (("Find Tag" find-tag) ("Find Next Tag" erlang-find-next-tag) ("Complete Word" erlang-complete-tag) ("Tags Apropos" tags-apropos) ("Search Files" tags-search)))) (#$ . 1855)) #@111 Description of the Shell menu used by Erlang mode. Please see the documentation of `erlang-menu-base-items'. (defvar erlang-menu-shell-items '(nil ("Shell" (("Start New Shell" erlang-shell) ("Display Shell" erlang-shell-display)))) (#$ . 3782)) #@113 Description of the Compile menu used by Erlang mode. Please see the documentation of `erlang-menu-base-items'. (defvar erlang-menu-compile-items '(("Compile" (("Compile Buffer" erlang-compile) ("Display Result" erlang-compile-display) ("Next Error" erlang-next-error)))) (#$ . 4035)) #@54 Description of the version menu used in Erlang mode. (defvar erlang-menu-version-items '(nil ("Version" erlang-version)) (#$ . 4326)) #@140 Description of personal menu items used in Erlang mode. Please see the variable `erlang-menu-base-items' for a description of the format. (defvar erlang-menu-personal-items nil (#$ . 4467)) #@190 The menu containing man pages. The format of the menu should be compatible with `erlang-menu-base-items'. This variable is added to the list of Erlang menus stored in `erlang-menu-items'. (defvar erlang-menu-man-items nil (#$ . 4665)) #@134 Description of the menu containing the skeleton entries. The menu is in the form described by the variable `erlang-menu-base-items'. (defvar erlang-menu-skel-items nil (#$ . 4908)) #@1369 Functions to run when Erlang mode is activated. This hook is used to change the behaviour of Erlang mode. It is normally used by the user to personalise the programming environment. When used in a site init file, it could be used to customise Erlang mode for all users on the system. The functions added to this hook are run every time Erlang mode is started. See also `erlang-load-hook', a hook which is run once, when Erlang mode is loaded into Emacs, and `erlang-shell-mode-hook' which is run every time a new inferior Erlang shell is started. To use a hook, create an Emacs lisp function to perform your actions and add the function to the hook by calling `add-hook'. The following example binds the key sequence C-c C-c to the command `erlang-compile' (normally bound to C-c C-k). The example also activates Font Lock mode to fontify the buffer and adds a menu containing all functions defined in the current buffer. To use the example, copy the following lines to your `~/.emacs' file: (add-hook 'erlang-mode-hook 'my-erlang-mode-hook) (defun my-erlang-mode-hook () (local-set-key "\C-c\C-c" 'erlang-compile) (if window-system (progn (setq font-lock-maximum-decoration t) (font-lock-mode 1))) (if (and window-system (fboundp 'imenu-add-to-menubar)) (imenu-add-to-menubar "Imenu"))) (defvar erlang-mode-hook nil (#$ . 5097)) #@1094 Functions to run when Erlang mode is loaded. This hook is used to change the behaviour of Erlang mode. It is normally used by the user to personalise the programming environment. When used in a site init file, it could be used to customize Erlang mode for all users on the system. The difference between this hook and `erlang-mode-hook' and `erlang-shell-mode-hook' is that the functions in this hook is only called once, when the Erlang mode is loaded into Emacs the first time. Natural actions for the functions added to this hook are actions which only should be performed once, and actions which should be performed before starting Erlang mode. For example, a number of variables are used by Erlang mode before `erlang-mode-hook' is run. The following example sets the variable `erlang-root-dir' so that the manual pages can be retrieved (note that you must set the value of `erlang-root-dir' to match the location of Erlang on your system): (add-hook 'erlang-load-hook 'my-erlang-load-hook) (defun my-erlang-load-hook () (setq erlang-root-dir "/usr/local/erlang")) (defvar erlang-load-hook nil (#$ . 6515)) #@193 Functions to run when a new Erlang source file is being edited. A useful function is `tempo-template-erlang-normal-header'. (This function only exists when the `tempo' package is available.) (defvar erlang-new-file-hook nil (#$ . 7657)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erlang-check-module-name funcall function #[0 "\300\207" [ask] 1] "Non-nil means check that module name and file name agrees when saving.\n\nIf the value of this variable is the symbol `ask', the user is\nprompted. If the value is t the source is silently changed." :group erlang :type (choice (const :tag "Check on save" 'ask) (const :tag "Don't check on save" t))] 8) #@409 List of activated electric commands. The list should contain the electric commands which should be active. Currently, the available electric commands are: `erlang-electric-comma' `erlang-electric-semicolon' `erlang-electric-gt' `erlang-electric-newline' Should the variable be bound to t, all electric commands are activated. To deactivate all electric commands, set this variable to nil. (defvar erlang-electric-commands '(erlang-electric-comma erlang-electric-semicolon erlang-electric-gt) (#$ . 8360)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable erlang-electric-newline-inhibit funcall function #[0 "\300\207" [t] 1] "Set to non-nil to inhibit newline after electric command.\n\nThis is useful since a lot of people press return after executing an\nelectric command.\n\nIn order to work, the command must also be in the\nlist `erlang-electric-newline-inhibit-list'.\n\nNote that commands in this list are required to set the variable\n`erlang-electric-newline-inhibit' to nil when the newline shouldn't be\ninhibited." :group erlang :type boolean :safe booleanp] 10) #@46 Commands which can inhibit the next newline. (defvar erlang-electric-newline-inhibit-list '(erlang-electric-semicolon erlang-electric-comma erlang-electric-gt) (#$ . 9506)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erlang-electric-semicolon-insert-blank-lines funcall function #[0 "\300\207" [nil] 1] "Number of blank lines inserted before header, or nil.\n\nThis variable controls the behaviour of `erlang-electric-semicolon'\nwhen a new function header is generated. When nil, no blank line is\ninserted between the current line and the new header. When bound to a\nnumber it represents the number of blank lines which should be\ninserted." :type (restricted-sexp :match-alternatives (integerp 'nil)) :group erlang] 8) #@590 List of functions controlling `erlang-electric-semicolon'. The functions in this list are called, in order, whenever a semicolon is typed. Each function in the list is called with no arguments, and should return one of the following values: nil -- no determination made, continue checking 'stop -- do not create prototype for next line (anything else) -- insert prototype, and stop checking If every function in the list is called with no determination made, then no prototype is inserted. The test is performed by the function `erlang-test-criteria-list'. (defvar erlang-electric-semicolon-criteria '(erlang-next-lines-empty-p erlang-at-keyword-end-p erlang-at-end-of-function-p) (#$ . 10281)) #@582 List of functions controlling `erlang-electric-comma'. The functions in this list are called, in order, whenever a comma is typed. Each function in the list is called with no arguments, and should return one of the following values: nil -- no determination made, continue checking 'stop -- do not create prototype for next line (anything else) -- insert prototype, and stop checking If every function in the list is called with no determination made, then no prototype is inserted. The test is performed by the function `erlang-test-criteria-list'. (defvar erlang-electric-comma-criteria '(erlang-stop-when-inside-argument-list erlang-stop-when-at-guard erlang-next-lines-empty-p erlang-at-keyword-end-p erlang-at-end-of-clause-p erlang-at-end-of-function-p) (#$ . 11015)) #@597 List of functions controlling the arrow aspect of `erlang-electric-gt'. The functions in this list are called, in order, whenever a `>' is typed. Each function in the list is called with no arguments, and should return one of the following values: nil -- no determination made, continue checking 'stop -- do not create prototype for next line (anything else) -- insert prototype, and stop checking If every function in the list is called with no determination made, then no prototype is inserted. The test is performed by the function `erlang-test-criteria-list'. (defvar erlang-electric-arrow-criteria '(erlang-stop-when-in-type-spec erlang-next-lines-empty-p erlang-at-end-of-function-p) (#$ . 11827)) #@839 List of functions controlling `erlang-electric-newline'. The electric newline commands indents the next line. Should the current line begin with a comment the comment start is copied to the newly created line. The functions in this list are called, in order, whenever a comma is typed. Each function in the list is called with no arguments, and should return one of the following values: nil -- no determination made, continue checking 'stop -- do not create prototype for next line (anything else) -- trigger the electric command. If every function in the list is called with no determination made, then no prototype is inserted. Should the atom t be a member of the list, it is treated as a function triggering the electric command. The test is performed by the function `erlang-test-criteria-list'. (defvar erlang-electric-newline-criteria '(t) (#$ . 12570)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \210\300\314\302\303\315DD\316\306\307\310\317\312\320& \210\300\321\302\303\322DD\323\306\307\310\317\312\320& \210\300\324\302\303\325DD\326\306\307\310\327\312\330& \210\300\331\302\303\332DD\333\306\307\310\317\312\320& \210\300\334\302\303\335DD\336\306\307\310\327\312\330& \210\300\337\302\303\340DD\341\306\307\310\342\312\343& \210\300\344\302\303\345DD\346\306\307\310\317\312\320& \210\300\347\302\303\350DD\351\306\307\310\352\312\353& \207" [custom-declare-variable erlang-next-lines-empty-threshold funcall function #[0 "\300\207" [2] 1] "Number of blank lines required to activate an electric command.\n\nActually, this value controls the behaviour of the function\n`erlang-next-lines-empty-p' which normally is a member of the\ncriteria lists controlling the electric commands. (Please see\nthe variables `erlang-electric-semicolon-criteria' and\n`erlang-electric-comma-criteria'.)\n\nThe variable is bound to a threshold value, a number, representing the\nnumber of lines which must be empty.\n\nSetting this variable to zero, electric commands will always be\ntriggered by `erlang-next-lines-empty-p', unless inhibited by other\nrules.\n\nShould this variable be nil, `erlang-next-lines-empty-p' will never\ntrigger an electric command. The same effect would be reached if the\nfunction `erlang-next-lines-empty-p' would be removed from the criteria\nlists.\n\nNote that even if `erlang-next-lines-empty-p' should not trigger an\nelectric command, other functions in the criteria list could." :group erlang :type (restricted-sexp :match-alternatives (integerp 'nil)) :safe #[257 "\211\300=\206\211\250\207" [nil] 3 "\n\n(fn VAL)"] erlang-new-clause-with-arguments #[0 "\300\207" [nil] 1] "Non-nil means that the arguments are cloned when a clause is generated.\n\nA new function header can be generated by calls to the function\n`erlang-generate-new-clause' and by use of the electric semicolon." boolean booleanp erlang-compile-use-outdir #[0 "\300\207" [t] 1] "When nil, go to the directory containing source file when compiling.\n\nThis is a workaround for a bug in the `outdir' option of compile. If the\noutdir is not in the current load path, Erlang doesn't load the object\nmodule after it has been compiled.\n\nTo activate the workaround, place the following in your `~/.emacs' file:\n (setq erlang-compile-use-outdir nil)" erlang-indent-level #[0 "\300\207" [4] 1] "Indentation of Erlang calls/clauses within blocks." integer integerp erlang-icr-indent #[0 "\300\207" [nil] 1] "Indentation of Erlang if/case/receive patterns.\nnil means keeping default behavior. When non-nil, indent to the column of\nif/case/receive." erlang-indent-guard #[0 "\300\207" [2] 1] "Indentation of Erlang guards." erlang-argument-indent #[0 "\300\207" [2] 1] "Indentation of the first argument in a function call.\nWhen nil, indent to the column after the `(' of the\nfunction." (restricted-sexp :match-alternatives (integerp 'nil)) #[257 "\211\300=\206\211\250\207" [nil] 3 "\n\n(fn VAL)"] erlang-tab-always-indent #[0 "\300\207" [t] 1] "Non-nil means TAB in Erlang mode should always re-indent the current line,\nregardless of where in the line point is when the TAB command is used." erlang-max-files-to-visit-for-refining-xrefs #[0 "\300\207" [32] 1] "Upper limit how many files to visit for checking arity.\nWhen `nil' there is no limit." (restricted-sexp :match-alternatives (integerp 'nil)) #[257 "\211\300=\206\211\250\207" [nil] 3 "\n\n(fn VAL)"]] 10) #@165 Inhibit the creation of the Erlang Manual Pages menu. The Windows distribution of Erlang does not include man pages, hence there is no attempt to create the menu. (defvar erlang-man-inhibit (eq system-type 'windows-nt) (#$ . 17020)) #@325 The man directories displayed in the Erlang menu. Each item in the list should be a list with three elements, the first the name of the menu, the second the directory, and the last a flag. Should the flag the nil, the directory is absolute, should it be non-nil the directory is relative to the variable `erlang-root-dir'. (defvar erlang-man-dirs '(("Man - Commands" "/man/man1" t) ("Man - Modules" "/man/man3" t) ("Man - Files" "/man/man4" t) ("Man - Applications" "/man/man6" t)) (#$ . 17261)) #@55 The maximum number of menu items in one menu allowed. (defvar erlang-man-max-menu-size 35 (#$ . 17764)) #@223 Function used to display man page. The function is called with one argument, the name of the file containing the man page. Use this variable when the default function, `erlang-man-display', does not work on your system. (defvar erlang-man-display-function 'erlang-man-display (#$ . 17875)) #@217 Additional options to the compilation command. This is an elisp list of options. Each option can be either: - an atom - a dotted pair - a string Example: '(bin_opt_info (i . "/path1/include") (i . "/path2/include")) (defvar erlang-compile-extra-opts nil (#$ . 18174)) #@379 Alist of filename patterns vs corresponding compilation functions. Each element looks like (REGEXP . FUNCTION). Compiling a file whose name matches REGEXP specifies FUNCTION to use to compute the compilation command. The FUNCTION will be called with two arguments: module name and default compilation options, like output directory. The FUNCTION is expected to return a string. (defvar erlang-compile-command-function-alist '((".erl\\'" . inferior-erlang-compute-erl-compile-command) (".xrl\\'" . inferior-erlang-compute-leex-compile-command) (".yrl\\'" . inferior-erlang-compute-yecc-compile-command) ("." . inferior-erlang-compute-erl-compile-command)) (#$ . 18449)) #@149 Options to pass to leex when compiling xrl files. This is an elisp list of options. Each option can be either: - an atom - a dotted pair - a string (defvar erlang-leex-compile-opts nil (#$ . 19125)) #@149 Options to pass to yecc when compiling yrl files. This is an elisp list of options. Each option can be either: - an atom - a dotted pair - a string (defvar erlang-yecc-compile-opts nil (#$ . 19331)) #@148 Non-nil when this version of Emacs uses a modern version of regexp. Supporting _< and _> This is determined by checking the version of Emacs used. (defvar erlang-regexp-modern-p t (#$ . 19537)) #@40 Regexp describing a single-quoted atom (defconst erlang-atom-quoted-regexp "'\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'" (#$ . 19737)) #@47 Regexp describing a regular (non-quoted) atom (defconst erlang-atom-regular-regexp (byte-code "\203\301\207\302\207" [erlang-regexp-modern-p "\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>" "\\<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\>"] 1) (#$ . 19868)) #@35 Regexp describing an Erlang atom. (defconst erlang-atom-regexp (concat "\\(" erlang-atom-quoted-regexp "\\|" erlang-atom-regular-regexp "\\)") (#$ . 20118)) #@164 Number of regexp parenthesis pairs in `erlang-atom-regexp'. This is used to determine parenthesis matches in complex regexps which contains `erlang-atom-regexp'. (defconst erlang-atom-regexp-matches 1 (#$ . 20282)) #@113 Regexp which should match an Erlang variable. The regexp must be surrounded with a pair of regexp parentheses. (defconst erlang-variable-regexp (byte-code "\203\301\207\302\207" [erlang-regexp-modern-p "\\_<\\([[:upper:]_]\\(?:\\sw\\|\\s_\\)*\\)\\_>" "\\<\\([[:upper:]_]\\(?:\\sw\\|\\s_\\)*\\)\\>"] 1) (#$ . 20505)) #@160 Number of regexp parenthesis pairs in `erlang-variable-regexp'. This is used to determine matches in complex regexps which contains `erlang-variable-regexp'. (defconst erlang-variable-regexp-matches 1 (#$ . 20832)) #@44 Regexp matching an erlang module:function. (defconst erlang-module-function-regexp "\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\):\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)" (#$ . 21054)) #@47 Matches a name of a function, macro or record (defconst erlang-name-regexp (concat "\\(\\(?:\\sw\\|\\s_\\)+\\|" erlang-atom-quoted-regexp "\\)") (#$ . 21323)) (defconst erlang-id-regexp (concat "\\(?:\\(qualified-function\\|record\\|macro\\|module\\) \\)?\\(?:" erlang-atom-regexp ":\\)?" erlang-name-regexp "?\\(?:/\\([0-9]+\\)\\)?")) #@136 Like `regexp-opt', except if PAREN is `symbols', then the resulting regexp is surrounded by \_< and \_>. (fn STRINGS &optional PAREN) (defalias 'erlang-regexp-opt #[513 "\211\301=\203\203\302\303\304\"\305Q\207\306\303\304\"\307Q\207\303\"\207" [erlang-regexp-modern-p symbols "\\_<" regexp-opt t "\\_>" "\\<" "\\>"] 6 (#$ . 21666)]) #@26 Erlang reserved keywords (defvar erlang-keywords '("after" "begin" "catch" "case" "cond" "end" "fun" "if" "let" "of" "receive" "try" "when") (#$ . 22016)) (defconst erlang-keywords-regexp (erlang-regexp-opt erlang-keywords 'symbols)) #@18 Erlang operators (defvar erlang-operators '("and" "andalso" "band" "bnot" "bor" "bsl" "bsr" "bxor" "div" "not" "or" "orelse" "rem" "xor") (#$ . 22256)) (defconst erlang-operators-regexp (erlang-regexp-opt erlang-operators 'symbols)) #@15 Erlang guards (defvar erlang-guards '("is_atom" "is_binary" "is_bitstring" "is_boolean" "is_float" "is_function" "is_integer" "is_list" "is_map" "is_number" "is_pid" "is_port" "is_record" "is_reference" "is_tuple" "atom" "binary" "bitstring" "boolean" "function" "integer" "list" "number" "pid" "port" "record" "reference" "tuple") (#$ . 22495)) (defconst erlang-guards-regexp (erlang-regexp-opt erlang-guards 'symbols)) #@25 Erlang type specs types (defvar erlang-predefined-types '("any" "arity" "boolean" "byte" "char" "cons" "deep_string" "iodata" "iolist" "maybe_improper_list" "module" "mfa" "nil" "neg_integer" "none" "non_neg_integer" "nonempty_list" "nonempty_improper_list" "nonempty_maybe_improper_list" "nonempty_string" "no_return" "pos_integer" "string" "term" "timeout" "map") (#$ . 22922)) (defconst erlang-predefined-types-regexp (erlang-regexp-opt erlang-predefined-types 'symbols)) #@34 Erlang built-in functions (BIFs) (defvar erlang-int-bifs '("abs" "alias" "apply" "atom_to_binary" "atom_to_list" "binary_to_atom" "binary_to_existing_atom" "binary_to_float" "binary_to_integer" "binary_to_list" "binary_to_term" "binary_part" "bit_size" "bitstring_to_list" "byte_size" "ceil" "check_old_code" "check_process_code" "date" "delete_module" "demonitor" "disconnect_node" "element" "erase" "error" "exit" "floor" "float" "float_to_binary" "float_to_list" "garbage_collect" "get" "get_keys" "group_leader" "halt" "hd" "integer_to_list" "integer_to_binary" "iolist_size" "iolist_to_binary" "is_alive" "is_atom" "is_binary" "is_bitstring" "is_boolean" "is_float" "is_function" "is_integer" "is_list" "is_map" "is_map_key" "is_number" "is_pid" "is_port" "is_process_alive" "is_record" "is_reference" "is_tuple" "length" "link" "list_to_atom" "list_to_binary" "list_to_bitstring" "list_to_existing_atom" "list_to_float" "list_to_integer" "list_to_pid" "list_to_port" "list_to_ref" "list_to_tuple" "load_module" "make_ref" "map_get" "map_size" "max" "min" "module_loaded" "monitor" "monitor_node" "node" "nodes" "now" "open_port" "pid_to_list" "port_close" "port_command" "port_connect" "port_control" "port_to_list" "pre_loaded" "process_flag" "process_info" "processes" "purge_module" "put" "ref_to_list" "register" "registered" "round" "self" "setelement" "size" "spawn" "spawn_link" "spawn_monitor" "spawn_opt" "spawn_request" "spawn_request_abandon" "split_binary" "statistics" "term_to_binary" "term_to_iovec" "time" "throw" "tl" "trunc" "tuple_size" "tuple_to_list" "unalias" "unlink" "unregister" "whereis") (#$ . 23403)) (defconst erlang-int-bif-regexp (erlang-regexp-opt erlang-int-bifs 'symbols)) #@60 Erlang built-in functions (BIFs) that needs erlang: prefix (defvar erlang-ext-bifs '("adler32" "adler32_combine" "alloc_info" "alloc_sizes" "append" "append_element" "bump_reductions" "call_on_load_function" "cancel_timer" "crc32" "crc32_combine" "decode_packet" "delay_trap" "delete_element" "display" "display_nl" "display_string" "dist_get_stat" "dist_ctrl_get_data" "dist_ctrl_get_data_notification" "dist_ctrl_get_opt" "dist_ctrl_input_handler" "dist_ctrl_put_data" "dist_ctrl_set_opt" "dmonitor_node" "dt_append_vm_tag_data" "dt_get_tag" "dt_get_tag_data" "dt_prepend_vm_tag_data" "dt_put_tag" "dt_restore_tag" "dt_spread_tag" "convert_time_unit" "exit_signal" "external_size" "finish_after_on_load" "finish_loading" "format_cpu_topology" "fun_info" "fun_info_mfa" "fun_to_list" "function_exported" "garbage_collect_message_area" "gather_gc_info_result" "get_cookie" "get_module_info" "has_prepared_code_on_load" "hibernate" "insert_element" "iolist_to_iovec" "is_builtin" "load_nif" "loaded" "localtime" "localtime_to_universaltime" "make_fun" "make_tuple" "match_spec_test" "md5" "md5_final" "md5_init" "md5_update" "memory" "module_info" "monitor_node" "monotonic_time" "nif_error" "phash" "phash2" "port_call" "port_get_data" "port_info" "port_set_data" "ports" "posixtime_to_universaltime" "prepare_loading" "process_display" "raise" "read_timer" "resume_process" "send" "send_after" "send_nosuspend" "seq_trace" "seq_trace_info" "seq_trace_print" "set_cookie" "set_cpu_topology" "setnode" "start_timer" "subtract" "suspend_process" "system_flag" "system_info" "system_monitor" "system_profile" "system_time" "trace" "trace_delivered" "trace_info" "trace_pattern" "time_offset" "timestamp" "universaltime" "universaltime_to_localtime" "universaltime_to_posixtime" "unique_integer" "yield") (#$ . 25122)) (defconst erlang-ext-bif-regexp (byte-code "\302\303 \"\304\"\207" [erlang-int-bifs erlang-ext-bifs erlang-regexp-opt append symbols] 4)) #@50 Regexp which should match beginning of a clause. (defvar erlang-defun-prompt-regexp (concat "^" erlang-atom-regexp "\\s *(") (#$ . 27082)) #@492 Regexp which should match an Erlang file name. This regexp is used when an Erlang module name is extracted from the name of an Erlang source file. The regexp should only match the section of the file name which should be excluded from the module name. To match all files set this variable to "\\(\\..*\\|\\)$". The matches all except the extension. This is useful if the Erlang tags system should interpret tags on the form `module:tag' for files written in other languages than Erlang. (defvar erlang-file-name-extension-regexp "\\.erl$" (#$ . 27228)) #@144 If non-nil, when starting an inferior shell, split windows. If nil, the inferior shell replaces the window. This is the traditional behaviour. (defvar erlang-inferior-shell-split-window t (#$ . 27792)) #@29 Keymap used in Erlang mode. (defvar erlang-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\301\324\325#\210\301\326\327#\210\301\330\331#\210\301\332\333#\210\301\334\335#\210\301\336\337#\210\301\340\341#\210\301\342\343#\210\301\344\345#\210\301\346\347#\210\301\350\351#\210\301\352\353#\210\301\354\355#\210\301\356\357#\210\301\360\361#\210\301\362\363#\210\301\364\365#\210\207" [make-sparse-keymap define-key ";" erlang-electric-semicolon "," erlang-electric-comma "<" erlang-electric-lt ">" erlang-electric-gt " " erlang-electric-newline "" backward-delete-char-untabify "\361" erlang-fill-paragraph "\211" erlang-complete-tag "\211" tempo-complete-tag "\253" erlang-find-next-tag "\341" erlang-beginning-of-clause "\342" tempo-backward-mark "\345" erlang-end-of-clause "\346" tempo-forward-mark "\350" erlang-mark-clause "" comment-region "\n" erlang-generate-new-clause " " erlang-compile "\f" erlang-compile-display "" erlang-show-syntactic-information "" erlang-indent-function "" uncomment-region "" erlang-clone-arguments "" erlang-align-arrows "" erlang-shell-display "" erlang-man-function-no-prompt] 5) (#$ . 28000)) #@45 Abbrev table in use in Erlang-mode buffers. (defvar erlang-mode-abbrev-table nil (#$ . 29324)) #@45 Syntax table in use in Erlang-mode buffers. (defvar erlang-mode-syntax-table nil (#$ . 29425)) #@227 The type of erlang-skeletons that should be used, default uses edoc type, for the old type, standard comments, set "erlang-skels-old" in your .emacs and restart. Or define your own and set the variable to that file. (defvar erlang-skel-file "erlang-skels" (#$ . 29527)) (load erlang-skel-file) #@51 Font lock keyword highlighting a function header. (defvar erlang-font-lock-keywords-function-header (byte-code "\301\302Q\303\304\305FC\207" [erlang-atom-regexp "^" "\\s-*(" 1 font-lock-function-name-face t] 4) (#$ . 29837)) (custom-declare-face 'erlang-font-lock-exported-function-name-face '((default (:inherit font-lock-function-name-face))) "Face used for highlighting exported functions." :group 'erlang) (defvar erlang-font-lock-exported-function-name-face 'erlang-font-lock-exported-function-name-face) #@46 Inhibit separate face for exported functions (defvar erlang-inhibit-exported-function-name-face nil (#$ . 30354)) #@61 Font lock keyword highlighting an exported function header. (defvar erlang-font-lock-keywords-exported-function-header (byte-code "\300\301\302\303FC\207" [erlang-match-next-exported-function 1 erlang-font-lock-exported-function-name-face t] 4) (#$ . 30474)) #@52 Font lock keyword highlighting built in functions. (defvar erlang-font-lock-keywords-int-bifs (byte-code "\301P\302\303EC\207" [erlang-int-bif-regexp "\\s-*(" 1 font-lock-builtin-face] 3) (#$ . 30739)) #@52 Font lock keyword highlighting built in functions. (defvar erlang-font-lock-keywords-ext-bifs (byte-code "\301\302Q\303\304EC\207" [erlang-ext-bif-regexp "\\<\\(erlang\\)\\s-*:\\s-*" "\\s-*(" (1 'font-lock-builtin-face) (2 'font-lock-builtin-face)] 3) (#$ . 30948)) #@59 Font lock keyword highlighting an internal function call. (defvar erlang-font-lock-keywords-int-function-calls (byte-code "\301P\302\303EC\207" [erlang-atom-regexp "\\s-*(" 1 font-lock-type-face] 3) (#$ . 31221)) #@59 Font lock keyword highlighting an external function call. (defvar erlang-font-lock-keywords-ext-function-calls (byte-code "\301\302R\303\304EC\207" [erlang-atom-regexp "\\s-*:\\s-*" "\\s-*(" (1 'font-lock-type-face) (2 'font-lock-type-face)] 4) (#$ . 31441)) #@64 Font lock keyword highlighting a fun descriptor in F/N format. (defvar erlang-font-lock-keywords-fun-n (byte-code "\301\302Q\303\304EC\207" [erlang-atom-regexp "\\(" "/[0-9]+\\)" 1 font-lock-type-face] 3) (#$ . 31708)) #@50 Font lock keyword highlighting Erlang operators. (defvar erlang-font-lock-keywords-operators (byte-code "\301\302EC\207" [erlang-operators-regexp 1 font-lock-builtin-face] 3) (#$ . 31934)) #@65 Font lock keyword highlighting numbers in ASCII form (e.g. $A). (defvar erlang-font-lock-keywords-dollar (byte-code "\300\301\302EC\207" ["\\(\\$\\([^\\]\\|\\\\\\([^0-7^\n]\\|[0-7]+\\|\\^[a-zA-Z]\\)\\)\\)" 1 font-lock-constant-face] 3) (#$ . 32130)) #@46 Font lock keyword highlighting clause arrow. (defvar erlang-font-lock-keywords-arrow (byte-code "\300\301\302EC\207" ["->\\(\\s \\|$\\)" 1 font-lock-function-name-face] 3) (#$ . 32386)) #@62 Font lock keyword highlighting list comprehension operators. (defvar erlang-font-lock-keywords-lc (byte-code "\300\301\302EC\207" ["\\(<-\\|<=\\|||\\)\\(\\s \\|$\\)" 1 font-lock-keyword-face] 3) (#$ . 32578)) #@49 Font lock keyword highlighting Erlang keywords. (defvar erlang-font-lock-keywords-keywords (byte-code "\301\302EC\207" [erlang-keywords-regexp 1 font-lock-keyword-face] 3) (#$ . 32793)) #@44 Font lock keyword highlighting attributes. (defvar erlang-font-lock-keywords-attr (byte-code "\301\302Q\303\304\305!\203\305\202\306EC\207" [erlang-atom-regexp "^\\(-" "\\)\\(\\s-\\|\\.\\|(\\)" 1 boundp font-lock-preprocessor-face font-lock-constant-face] 4) (#$ . 32986)) #@172 Font lock keyword highlighting words in single quotes in comments. This is not the highlighting of Erlang strings and atoms, which are highlighted by syntactic analysis. (defvar erlang-font-lock-keywords-quotes (byte-code "\300\301\302\303FC\207" ["`\\([-+a-zA-Z0-9_:*][-+a-zA-Z0-9_:*]+\\)'" 1 font-lock-keyword-face t] 4) (#$ . 33271)) #@40 Font lock keyword highlighting guards. (defvar erlang-font-lock-keywords-guards (byte-code "\301\302Q\303\304EC\207" [erlang-guards-regexp "[^:]" "\\s-*(" 1 font-lock-builtin-face] 3) (#$ . 33615)) #@50 Font lock keyword highlighting predefined types. (defvar erlang-font-lock-keywords-predefined-types (byte-code "\301\302Q\303\304EC\207" [erlang-predefined-types-regexp "[^:]" "\\s-*(" 1 font-lock-builtin-face] 3) (#$ . 33820)) #@106 Font lock keyword highlighting macros. This must be placed in front of `erlang-font-lock-keywords-vars'. (defvar erlang-font-lock-keywords-macros (byte-code "\302\303 \304\260\305\306E\307\303 \304\260\310\311!\203\305\311\312E\202\"\305\306\312E\313\314\312\211FE\315\316\311\312FE\207" [erlang-atom-regexp erlang-variable-regexp "?\\s-*\\(" "\\|" "\\)" 1 font-lock-constant-face "^\\(-\\(?:define\\|ifn?def\\)\\)\\s-*(\\s-*\\(" boundp font-lock-preprocessor-face t 3 font-lock-type-face "^-e\\(lse\\|ndif\\)\\>" 0] 7) (#$ . 34056)) #@114 Font lock keyword highlighting Erlang records. This must be placed in front of `erlang-font-lock-keywords-vars'. (defvar erlang-font-lock-keywords-records (byte-code "\302P\303\304E \203\305\202\306\303\307\310F\311P\303\304EE\207" [erlang-atom-regexp erlang-regexp-modern-p "#\\s *" 1 font-lock-type-face "\\_<\\([0-9]+\\(_[0-9]+\\)*#[0-9a-zA-Z]+\\(_[0-9a-zA-Z]+\\)*\\)" "\\<\\([0-9]+\\(_[0-9]+\\)*#[0-9a-zA-Z]+\\(_[0-9a-zA-Z]+\\)*\\)" nil t "^-record\\s-*(\\s-*"] 5) (#$ . 34604)) #@123 Font lock keyword highlighting Erlang variables. Must be preceded by `erlang-font-lock-keywords-macros' to work properly. (defvar erlang-font-lock-keywords-vars (byte-code "\301P\302\303EC\207" [erlang-variable-regexp "[^#]" 1 font-lock-variable-name-face] 3) (#$ . 35100)) (defvar erlang-font-lock-descr-string "Font-lock keywords used by Erlang Mode.\n\nThere exists three levels of Font Lock keywords for Erlang:\n `erlang-font-lock-keywords-1' - Function headers and reserved keywords.\n `erlang-font-lock-keywords-2' - Bifs, guards and `single quotes'.\n `erlang-font-lock-keywords-3' - Variables, macros and records.\n `erlang-font-lock-keywords-4' - Exported functions, Function names,\n Funs, LCs (not Atoms).\n\nTo use a specific level, please set the variable\n`font-lock-maximum-decoration' to the appropriate level. Note that the\nvariable must be set before Erlang mode is activated.\n\nExample:\n (setq font-lock-maximum-decoration 2)") (defvar erlang-font-lock-keywords-1 (append erlang-font-lock-keywords-function-header erlang-font-lock-keywords-dollar erlang-font-lock-keywords-arrow erlang-font-lock-keywords-keywords) erlang-font-lock-descr-string) (defvar erlang-font-lock-keywords-2 (append erlang-font-lock-keywords-1 erlang-font-lock-keywords-int-bifs erlang-font-lock-keywords-ext-bifs erlang-font-lock-keywords-attr erlang-font-lock-keywords-quotes erlang-font-lock-keywords-guards) erlang-font-lock-descr-string) (defvar erlang-font-lock-keywords-3 (append erlang-font-lock-keywords-2 erlang-font-lock-keywords-operators erlang-font-lock-keywords-macros erlang-font-lock-keywords-records erlang-font-lock-keywords-vars erlang-font-lock-keywords-predefined-types) erlang-font-lock-descr-string) (defvar erlang-font-lock-keywords-4 (append erlang-font-lock-keywords-3 erlang-font-lock-keywords-exported-function-header erlang-font-lock-keywords-int-function-calls erlang-font-lock-keywords-ext-function-calls erlang-font-lock-keywords-fun-n erlang-font-lock-keywords-lc) erlang-font-lock-descr-string) (defvar erlang-font-lock-keywords erlang-font-lock-keywords-4 erlang-font-lock-descr-string) #@171 Syntax table used by Font Lock mode. The difference between this and the standard Erlang Mode syntax table is that `_' is treated as part of words by this syntax table. (defvar erlang-font-lock-syntax-table nil (#$ . 37269)) #@170 Internal flag used by advice `erlang-replace-tags-table'. This is non-nil when `etags-tags-completion-table' should be replaced by `erlang-etags-tags-completion-table'. (defvar erlang-replace-etags-tags-completion-table nil (#$ . 37502)) #@44 Return the current version of Erlang mode. (defalias 'erlang-version #[0 "\301\302!\203 \303\304\"\210\207" [erlang-version called-interactively-p interactive message "Erlang mode version %s, written by Anders Lindgren"] 3 (#$ . 37746) nil]) (defvar erlang-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [erlang-mode-hook variable-documentation put "Hook run after entering Erlang mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp erlang-mode-map definition-name erlang-mode] 4) (defvar erlang-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\300!\204#\303\300\307\310#\210\311\312\300\313\"\210!\210\300\302N\2041\303\300\302\304\314!#\210\303\310\315\316#\207" [erlang-mode-abbrev-table erlang-mode-map variable-documentation put purecopy "Keymap for `erlang-mode'." boundp definition-name erlang-mode (lambda (#1=#:def-tmp-var) (defvar erlang-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `erlang-mode'." derived-mode-parent prog-mode] 5) #@2347 Major mode for editing Erlang source files in Emacs. It knows about syntax and comment, it can indent code, it is capable of fontifying the source file, the TAGS commands are aware of Erlang modules, and the Erlang man pages can be accessed. Should this module, "erlang.el", be installed properly, Erlang mode is activated whenever an Erlang source or header file is loaded into Emacs. To indicate this, the mode line should contain the word "Erlang". The main feature of Erlang mode is indentation, press TAB and the current line will be indented correctly. Comments starting with only one `%' are indented to the column stored in the variable `comment-column'. Comments starting with two `%':s are indented with the same indentation as code. Comments starting with at least three `%':s are indented to the first column. However, Erlang mode contains much more, this is a list of the most useful commands: TAB - Indent the line. C-c C-q - Indent current function. M-; - Create a comment at the end of the line. M-q - Fill a comment, i.e. wrap lines so that they (hopefully) will look better. M-a - Goto the beginning of an Erlang clause. M-C-a - Ditto for function. M-e - Goto the end of an Erlang clause. M-C-e - Ditto for function. M-h - Mark current Erlang clause. M-C-h - Ditto for function. C-c C-z - Start, or switch to, an inferior Erlang shell. C-c C-k - Compile current file. C-x ` - Next error. , - Electric comma. ; - Electric semicolon. Erlang mode check the name of the file against the module name when saving, whenever a mismatch occurs Erlang mode offers to modify the source. The variable `erlang-electric-commands' controls the electric commands. To deactivate all of them, set it to nil. There exists a large number of commands and variables in the Erlang module. Please press `M-x apropos RET erlang RET' to see a complete list. Press `C-h f name-of-function RET' and `C-h v name-of-variable RET'to see the full description of functions and variables, respectively. On entry to this mode the contents of the hook `erlang-mode-hook' is executed. Please see the beginning of the file `erlang.el' for more information and examples of hooks. Other commands: \{erlang-mode-map} (defalias 'erlang-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f\321\"\204;\f =\204;\322\f\321 C#\210\323 !\210\f\324 \210\325 \210\326 \210\327 \210\330\331\332\333\307$\210\334 \210\335 \210\336 \210\337 \210\340\341!\210\342\343!\203\205\342\344!\203\205%\204|\306\345!\210\346%\347\350\351\352B\344\333$\210\353\354\355\"\210\353\354\356\"\210\357 \360U\203\232\361\362!\210)\363\364!\207" [delay-mode-hooks major-mode mode-name erlang-mode-map erlang-mode-abbrev-table local-abbrev-table make-local-variable t prog-mode erlang-mode "Erlang" mode-class put keymap-parent set-keymap-parent current-local-map abbrev-table-get :parents abbrev-table-put use-local-map erlang-syntax-table-init erlang-electric-init erlang-menu-init erlang-mode-variables add-hook before-save-hook erlang-check-module-name nil erlang-man-init erlang-tags-init erlang-font-lock-init erlang-skel-init tempo-use-tag-list erlang-tempo-tags fboundp add-function erldoc-eldoc-function eldoc-documentation-function ignore advice--add-function :before-until #[0 "\300\301!\207" [advice--buffer-local eldoc-documentation-function] 2] #[257 "\300\301\"\207" [advice--set-buffer-local eldoc-documentation-function] 4 "\n\n(fn GV--VAL)"] add-to-list align-rules-list (erlang-maps (regexp . "\\(\\s-*\\)\\(=>\\)\\s-*") (modes quote (erlang-mode)) (repeat . t)) (erlang-record-specs (regexp . "\\(\\s-*\\)\\(=\\).*\\(::\\)*\\s-*") (modes quote (erlang-mode)) (repeat . t)) buffer-size 0 run-hooks erlang-new-file-hook run-mode-hooks erlang-mode-hook] 5 (#$ . 38916) nil]) (byte-code "\300\211\203\211@\301\302\303B\"\210A\266\202\202\207" [("\\.erl$" "\\.app\\.src$" "\\.escript" "\\.hrl$" "\\.xrl$" "\\.yrl" "/ebin/.+\\.app") add-to-list auto-mode-alist erlang-mode] 6) (defalias 'erlang-syntax-table-init #[0 "\301 \210\302!\207" [erlang-mode-syntax-table erlang-ensure-syntax-table-is-initialized set-syntax-table] 2]) (defalias 'erlang-ensure-syntax-table-is-initialized #[0 "?\205~\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\310#\210\302\316\306#\210\302\317\310#\210\302\320\310#\210\302\321\310#\210\302\322\310#\210\302\323\310#\210\302\324\310#\210\302\325\310#\210\302\326\310#\210\302\327\330#\210\302\331\332#\210\302\333\310#\210\302\334\335#\210\211\211\262\207" [erlang-mode-syntax-table make-syntax-table modify-syntax-entry 10 ">" 34 "\"" 35 "." 36 "/" 37 "<" 38 39 42 43 45 47 58 60 61 62 92 "\\" 95 "_" 124 94 "'"] 5]) (defalias 'erlang-electric-init #[0 "\301\302\303\"\210\304\305\306\307#\210\304\305\310\311#\210\304\312\310\313#\210\304\314\310\315#\210\304\316\306\317#\210\304\316\310\320#\210\321\300!\210\322\211\207" [parse-sexp-lookup-properties mapc #[257 "\300\301\302#\207" [put delete-selection t] 5 "\n\n(fn CMD)"] (erlang-electric-semicolon erlang-electric-comma erlang-electric-gt) put bitsyntax-open-outer syntax-table (4 . 62) rear-nonsticky (category) bitsyntax-open-inner (category) bitsyntax-close-inner (category) bitsyntax-close-outer (5 . 60) (category) make-local-variable t] 4]) (defalias 'erlang-mode-variables #[0 "\204 \306\300\307\"\210\310\303!\210\311\nP\310\304!\210 \310\305!\210\312\310\313!\210. \310\314!\210\315\f\310\316!\210\317\310\320!\210\321\310\322!\210\323\310\324!\210\325\310\326!\210\327\310\330!\210\312\310\331!\210\307\310\332!\210\333\310\334!\210\335\310\336!\210\337\310\340!\210\333 \310\341!\210\342!\310\343!\210\307#\310\344!\210\345$\310\346!\210\347&\310\350!\210\351(\310\352!\210\353*\310\354!\210\355\211,\207" [erlang-mode-abbrev-table local-abbrev-table page-delimiter paragraph-start paragraph-separate paragraph-ignore-fill-prefix define-abbrev-table nil make-local-variable "^$\\|" t defun-prompt-regexp comment-start "%" comment-start-skip "%+\\s *" comment-column 48 indent-line-function erlang-indent-command indent-region-function erlang-indent-region comment-indent-function erlang-comment-indent parse-sexp-ignore-comments dabbrev-case-fold-search imenu-prev-index-position-function erlang-beginning-of-function imenu-extract-index-name-function erlang-get-function-name-and-arity tempo-match-finder "[^-a-zA-Z0-9_]\\([-a-zA-Z0-9_]*\\)\\=" beginning-of-defun-function end-of-defun-function erlang-end-of-function open-paren-in-column-0-is-defun-start fill-paragraph-function erlang-fill-paragraph comment-add 1 outline-regexp "[[:lower:]0-9_]+ *(.*) *-> *$" outline-level #[0 "\300\207" [1] 1] add-log-current-defun-function erlang-current-defun erlang-defun-prompt-regexp] 3]) #@39 Initialize Font Lock for Erlang mode. (defalias 'erlang-font-lock-init #[0 "\204\306 !\307\310\311#\210\211\262\312\302!\210\312\313\314!\203\"\314\202#\315!\316L\210\312\304!\210\313\317!\2036\317J\202B\313\320!\203A\320J\202B\321\211:\203S\322\236\206P\323\236\243\262\211\324\267\202s \210\202w \210\202w\210\202w\210\202w\210\312\325!\210\326\211\207" [erlang-font-lock-syntax-table erlang-mode-syntax-table font-lock-syntax-table erlang-font-lock-keywords font-lock-keywords erlang-font-lock-keywords-1 copy-syntax-table modify-syntax-entry 95 "w" make-local-variable boundp syntax-begin-function font-lock-beginning-of-syntax-function erlang-beginning-of-clause font-lock-maximum-decoration font-lock-use-maximal-decoration nil erlang-mode t #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (nil 89 1 95 2 101 3 108)) font-lock-defaults ((erlang-font-lock-keywords erlang-font-lock-keywords-1 erlang-font-lock-keywords-2 erlang-font-lock-keywords-3 erlang-font-lock-keywords-4) nil nil ((95 . "w")) erlang-beginning-of-clause (font-lock-mark-block-function . erlang-mark-clause) (font-lock-syntactic-keywords ("\\(?:^\\|[^$]\\)\"\\(?:[^\"\n]\\|\\\\\"\\)*\\(\\$\\)\"" 1 "w") ("\\(?:^\\|[^$]\\)'\\(?:[^'\n]\\|\\\\'\\)*\\(\\$\\)'" 1 "w") ("\\(\\$\\)\\\\[\"']" 1 "'"))) erlang-font-lock-keywords-2 erlang-font-lock-keywords-3 erlang-font-lock-keywords-4] 5 (#$ . 45920)]) #@1333 Replace the face components in a list of keywords. The first argument, KS, is a list of keywords. The rest of the arguments are expressions to replace the face information with. The first expression replaces the face of the first keyword, the second expression the second keyword etc. Should an expression be nil, the face of the corresponding keyword is not changed. Should fewer expressions than keywords be given, the last expression is used for all remaining keywords. Normally, the expressions are just atoms representing the new face. They could however be more complex, returning different faces in different situations. This function only handles keywords with elements on the forms: (REGEXP NUMBER FACE) (REGEXP NUMBER FACE OVERWRITE) This could be used when defining your own special font-lock setup, e.g: (setq my-font-lock-keywords (append erlang-font-lock-keywords-function-header erlang-font-lock-keywords-dollar (erlang-font-lock-set-face erlang-font-lock-keywords-macros 'my-neon-green-face) (erlang-font-lock-set-face erlang-font-lock-keywords-lc 'my-deep-red 'my-light-red) erlang-font-lock-keywords-attr)) For a more elaborate example, please see the beginning of the file `erlang.el'. (fn KS &rest FACES) (defalias 'erlang-font-lock-set-face #[385 "\300\203R@@@A@\203@\203@\202@AA@@AAA@E\2032\211C\244\210\211B\262A\262\203MA\203MA\262\266\202\211\237\207" [nil] 10 (#$ . 47375)]) #@27 Unfontify current buffer. (defalias 'erlang-font-lock-level-0 #[0 "\300\301!\207" [font-lock-mode 0] 2 (#$ . 48928) nil]) #@111 Fontify current buffer at level 1. This highlights function headers, reserved keywords, strings and comments. (defalias 'erlang-font-lock-level-1 #[0 "\302\303!\210\304\305!\210\306K \207" [erlang-font-lock-keywords-1 font-lock-keywords require font-lock font-lock-mode 1 font-lock-fontify-buffer] 2 (#$ . 49057) nil]) #@141 Fontify current buffer at level 2. This highlights level 1 features (see `erlang-font-lock-level-1') plus bifs, guards and `single quotes'. (defalias 'erlang-font-lock-level-2 #[0 "\302\303!\210\304\305!\210\306K \207" [erlang-font-lock-keywords-2 font-lock-keywords require font-lock font-lock-mode 1 font-lock-fontify-buffer] 2 (#$ . 49385) nil]) #@138 Fontify current buffer at level 3. This highlights level 2 features (see `erlang-font-lock-level-2') plus variables, macros and records. (defalias 'erlang-font-lock-level-3 #[0 "\302\303!\210\304\305!\210\306K \207" [erlang-font-lock-keywords-3 font-lock-keywords require font-lock font-lock-mode 1 font-lock-fontify-buffer] 2 (#$ . 49743) nil]) #@138 Fontify current buffer at level 4. This highlights level 3 features (see `erlang-font-lock-level-2') plus variables, macros and records. (defalias 'erlang-font-lock-level-4 #[0 "\302\303!\210\304\305!\210\306K \207" [erlang-font-lock-keywords-4 font-lock-keywords require font-lock font-lock-mode 1 font-lock-fontify-buffer] 2 (#$ . 50098) nil]) #@361 Init menus for Erlang mode. The variable `erlang-menu-items' contain a description of the Erlang mode menu. Normally, the list contains atoms, representing variables bound to pieces of the menu. Personal extensions could be added to `erlang-menu-personal-items'. This function should be called if any variable describing the menu configuration is changed. (defalias 'erlang-menu-init #[0 "\302\303 #\207" [erlang-menu-items erlang-mode-map erlang-menu-install "Erlang"] 4 (#$ . 50453)]) #@605 Install a menu in Emacs based on an abstract description. NAME is the name of the menu. ITEMS is a list. The elements are either nil representing a horizontal line or a list with two or three elements. The first is the name of the menu item, the second the function to call, or a submenu, on the same same form as ITEMS. The third optional element is an expression which is evaluated every time the menu is displayed. Should the expression evaluate to nil the menu item is ghosted. KEYMAP is the keymap to add to menu to. Please see the variable `erlang-menu-base-items'. (fn NAME ITEMS KEYMAP) (defalias 'erlang-menu-install #[771 "\300\301\302\303!\"\304\"#\207" [define-key vector menu-bar intern erlang-menu-make-keymap] 9 (#$ . 50952)]) #@32 Build a menu. (fn NAME ITEMS) (defalias 'erlang-menu-make-keymap #[514 "\300K!\301\302\211\211\211\211\303!\262\203\334\203O@:\204O@\203O\304@!\203G@J<\203G\305\303 @J! A\"\262\202A\262\202@\242\262@\243\242\262@\243\243\242\262\204{T\262\306\307\310\"!\262\311\262\202\277:\203\234@\312=\203\234T\262\306\307\313\"!\262B\262\202\2779\203\254\262B\262\202\277T\262\306\307\314\"!\262\315\"\262\316\317!#\210\211\203\324\320\321#\210A\262\202B\207" [make-sparse-keymap 0 nil reverse boundp append intern format "separator-%d" ("--") lambda "lambda-%d" "submenu-%d" erlang-menu-make-keymap define-key vector put menu-enable] 13 (#$ . 51716)]) #@185 Substitute functions in menu described by ITEMS. The menu ITEMS is updated destructively. ALIST is list of pairs where the car is the old function and cdr the new. (fn ITEMS ALIST) (defalias 'erlang-menu-substitute #[514 "\300\211\211\205J@\242\262@\243\242\262\203C9\2032\205\"\236\262\211\203C@AA\240\210\202C:\203>@\301=\204C\302\"\210A\262\202\207" [nil lambda erlang-menu-substitute] 8 (#$ . 52462)]) #@458 Add menu ENTRY above menu entry ABOVE in menu ITEMS. Do nothing if the items already should be in the menu. Should ABOVE not be in the list, the entry is added at the bottom of the menu. The new menu is returned. No guarantee is given that the original menu is left unchanged. The equality test is performed by `eq'. Example: (erlang-menu-add-above 'my-erlang-menu-items 'erlang-menu-man-items) (fn ENTRY ABOVE ITEMS) (defalias 'erlang-menu-add-above #[771 "\300\301$\207" [erlang-menu-add-below t] 8 (#$ . 52907)]) #@552 Add menu ENTRY below menu items BELOW in the Erlang menu. Do nothing if the items already should be in the menu. Should BELOW not be in the list, items is added at the bottom of the menu. The new menu is returned. No guarantee is given that the original menu is left unchanged. The equality test is performed by `eq'. Example: (setq erlang-menu-items (erlang-menu-add-below 'my-erlang-menu-items 'erlang-menu-base-items erlang-menu-items)) (fn ENTRY BELOW ITEMS &optional ABOVE-P) (defalias 'erlang-menu-add-below #[1027 ">\203\207\300\211\211\204\\\204!\301C\"\262\302\262\202 @=\203L\2037\301B\"\202D\301@ ABB\"\262\302\262\202 \301@C\"\262A\262\202 \207" [nil append t] 12 (#$ . 53472)]) #@141 Delete ENTRY from menu ITEMS. The new menu is returned. No guarantee is given that the original menu is left unchanged. (fn ENTRY ITEMS) (defalias 'erlang-menu-delete #[514 "\300\"\207" [delq] 5 (#$ . 54282)]) #@148 Add menus containing the manual pages of the Erlang. The variable `erlang-man-dirs' contains entries describing the location of the manual pages. (defalias 'erlang-man-init #[0 "\206\f\305\301!\205\f ??\205%\306 \203\307\n\310 !\"\311\302\312\f#\313 \207" [erlang-man-inhibit menu-bar-mode erlang-menu-man-items erlang-man-dirs erlang-menu-items boundp (nil ("Man - Function" erlang-man-function) ("Man - Function Under Cursor" erlang-man-function-no-prompt)) append erlang-man-make-top-menu erlang-menu-add-above erlang-menu-version-items erlang-menu-init] 4 (#$ . 54504) nil]) #@44 Remove the man pages from the Erlang mode. (defalias 'erlang-man-uninstall #[0 "\301\302\"\303 \207" [erlang-menu-items erlang-menu-delete erlang-menu-man-items erlang-menu-init] 3 (#$ . 55099) nil]) #@130 Create one menu entry per element of DIR-LIST. The format is described in the documentation of `erlang-man-dirs'. (fn DIR-LIST) (defalias 'erlang-man-make-top-menu #[257 "\300\211\203;\301@8\203\302@A@\303\"\202@A@\262\211\2034\304!\2034@@\305\306!!DB\262A\262\202\203B\237\207\307\207" [nil 2 erlang-man-dir t file-readable-p erlang-man-make-middle-menu erlang-man-get-files (("Man Pages" (("Error! Why?" erlang-man-describe-error))))] 7 (#$ . 55308)]) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable erlang-man-download-url funcall function #[0 "\300\207" [#1="http://erlang.org/download/otp_doc_man_22.1.tar.gz"] 1 #1#] "The URL from which the erlang-man-download function will\n download Erlang man pages " :type string] 6) #@136 Returns the directory where man pages that are downloaded by the functions erlang-man-download and erlang-man-download-ask are stored. (defalias 'erlang-man-user-local-emacs-dir #[0 "\300\301\302!!\300\303!P\207" [file-name-as-directory locate-user-emacs-file "cache" "erlang_mode_man_pages"] 3 (#$ . 56099)]) #@313 Downloads the Erlang man pages into the "cache/erlang_mode_man_pages" subdirectory under the user's Emacs directory, if the man pages haven't been downloaded already. The URL from which the man pages are downloaded can be configured with the variable "erlang-man-download-url" (fn &optional DOWNLOAD-URL-PARAM) (defalias 'erlang-man-download #[256 "\211\206\301 \302!\303P\304!\203/\305\306\307\"r\211q\210\310\311\"\216\312!\210\313 *\262\230\203/\207\302!\314P\315\316#\210\317\320!\210\321\307\"\210\322\307#\210\323\324#\210\315\325\"\210\326\327\330#!\210\315\331!\210\315\332\327\333#\"\210\326\327\333#!\210\315\334!\210\335 \210\207" [erlang-man-download-url erlang-man-user-local-emacs-dir file-name-as-directory "erlang_man_download_url" file-exists-p generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents buffer-string "man.tar.gz" message "Downloading: %s to %s" require url mkdir url-copy-file write-region nil "Note that %s will only be unpacked automatically if your system has the tar tool in its path" shell-command format "tar -x -z -f %s -C %s" "The error message above can be ignored if everything works fine" "Unpacking man pages using the command \"%s\"" "tar -x -f %s -C %s" "Restarting erlang-mode" erlang-mode] 11 (#$ . 56416) nil]) #@374 Downloads the Erlang man pages into the "cache/erlang_mode_man_pages" subdirectory under the user's Emacs directory, if the man pages haven't been downloaded already. This function ask the user to confirm before downloading and lets the user edit the download URL. The function erlang-man-download downloads the man pages without prompting the user. (fn &optional SUBDIR) (defalias 'erlang-man-download-ask #[256 "\301\302!\205\303\304\"\305\306!!\206\307P\262\207" [erlang-man-download-url y-or-n-p "Could not find Erlang man pages on your system. Do you want to download them?" read-string "URL to download man pages from: " directory-file-name erlang-man-download ""] 5 (#$ . 57792) nil]) #@37 (fn SUBDIR &optional NO-DOWNLOAD) (defalias 'erlang-man-dir #[513 "\205\301\302!\302\303!\302\304!Q!P\205\301!P\305 \203)\306!\203)\207\2035\306!\2035\207\306\301!P!\203F\301!P\207?\205N\307!\207" [erlang-root-dir directory-file-name file-name-as-directory "lib" "erlang" erlang-man-user-local-emacs-dir file-directory-p erlang-man-download-ask] 8 (#$ . 58499)]) #@148 Create the second level menu from FILELIST. Should the list be longer than `erlang-man-max-menu-size', a tree of menus is created. (fn FILELIST) (defalias 'erlang-man-make-middle-menu #[257 "\211GX\203 \301!\207\302\303!\302\211\211\203IS\233\262\262\211\204)\302\262\2021\211A\262\211\302\241\210\301!\262@@\304\305!@@QDB\262\202\237\207" [erlang-man-max-menu-size erlang-man-make-menu nil copy-sequence " -- " reverse] 10 (#$ . 58900)]) #@52 Make a leaf menu based on FILELIST. (fn FILELIST) (defalias 'erlang-man-make-menu #[257 "\300\211\203\301@!\262\211\203\211B\262A\262\202\237\207" [nil erlang-man-make-menu-item] 5 (#$ . 59372)]) #@68 Create a menu item containing the name of the man page. (fn FILE) (defalias 'erlang-man-make-menu-item #[257 "\300\301\"\205\211\302\224\302\225O\303!\304\305\306\307\310EFD\262\207" [string-match ".+/\\([^/]+\\)\\.\\([124-9]\\|3\\(erl\\)?\\)\\(\\.gz\\)?$" 1 capitalize lambda nil (interactive) funcall erlang-man-display-function] 9 (#$ . 59589)]) #@42 Return files in directory DIR. (fn DIR) (defalias 'erlang-man-get-files #[257 "\300\301\302#\207" [directory-files t ".+\\.\\([124-9]\\|3\\(erl\\)?\\)\\(\\.gz\\)?\\'"] 5 (#$ . 59952)]) #@143 Find manual page for MODULE, defaults to module of function under point. This function is aware of imported functions. (fn &optional MODULE) (defalias 'erlang-man-module #[256 "\211\206\302 \262\211\203\211\303\230\203\304\305!\210\306\307!\310Q\311\211\203i\204i\312@8\2037\313@A@!\202;@A@\314!\203a\315!\262\203a\204a\316@\"\203Z@\262A\262\202FA\262\210\202\203q !\207\317!\207" [erlang-man-dirs erlang-man-display-function erlang-default-module "" error "No Erlang module name given" "/" regexp-quote "\\.\\([124-9]\\|3\\(erl\\)?\\)\\(\\.gz\\)?$" nil 2 erlang-man-dir file-directory-p erlang-man-get-files string-match manual-entry] 9 (#$ . 60146) (byte-code "\300 \301\302\303\203\304\230\203\304\202\302\305\"\"!\211\304\230\203%\266\202\202(\211\266\202C\207" [erlang-default-module read-string format "Manual entry for module%s: " "" " (default %s)"] 7)]) (defalias 'erlang-default-module #[0 "\300 \301!\302=\203\303!\207\304!\207" [erlang-get-identifier-at-point erlang-id-kind qualified-function erlang-id-module erlang-id-name] 3]) #@150 Name of function for last `erlang-man-function' call. Used for communication between `erlang-man-function' and the patch to `Man-notify-when-ready'. (defvar erlang-man-function-name nil (#$ . 61256)) #@137 Helper function for erlang-man-function. Displays the man page text for the Erlang function named name if it can be found. (fn NAME) (defalias 'erlang-man-function-display-man-page #[257 "\301\211\302\303\"\203\304\211\224O\262\304\225\301O\262\202\";\203\"\262\203,\305\230\2030\306\307!\210\310\311!\203Q\211\203?\312 \210\211\3131H\314!0\207\301\315@A\"\207\314!\210\211\205^\316\301#\207" [erlang-man-function-name nil string-match ":" 0 "" error "No Erlang module name given" fboundp Man-notify-when-ready erlang-man-patch-notify (error) erlang-man-module signal erlang-man-repeated-search-for-function] 7 (#$ . 61463)]) #@166 Find manual page for NAME, where NAME is module:function. The entry for `function' is displayed. This function is aware of imported functions. (fn &optional NAME) (defalias 'erlang-man-function #[256 "\300\301!\210\211\206\n\302 \262\303!\207" [require man erlang-default-function-or-module erlang-man-function-display-man-page] 3 (#$ . 62127) (byte-code "\300 \301\302\303\203\302\304\"\202\305\"!\211\305\230\203\202\211\266\202C\207" [erlang-default-function-or-module read-string format "Manual entry for `module:func' or `module'%s: " " (default %s)" ""] 7)]) #@282 Find manual page for the function under the cursor. The man entry for `function' is displayed. This function provides the same functionality as erlang-man-function except for that it does not ask the user to confirm the function name before opening the man page for the function. (defalias 'erlang-man-function-no-prompt #[0 "\300 \211\203\n\301!\207\302\303!\207" [erlang-default-function-or-module erlang-man-function error "No function name under the cursor"] 3 (#$ . 62715) nil]) #@582 This function tries to scroll MAN-BUFFER to the documentation of function FUNCTION-NAME. The function will try again a few times if the documentation for FUNCTION-NAME can't be found. This is necessary as the man page is loaded asynchronously from Emacs 19 and the correct function to hook into depends on the Emacs version. The function will automatically try to find the correct buffer from the list of opened buffers if MAN-BUFFER is nil. The optional parameter MODULE-NAME will make the search for the buffer more accurate. (fn MAN-BUFFER FUNCTION-NAME &optional MODULE-NAME) (defalias 'erlang-man-repeated-search-for-function #[770 "\300\211\301\302\303&\207" [#[1799 "\300#?\205-\\X\205-\301\302\"\210\303\304 \211\n\n\\\n\n\n\n\n&\n\207" [erlang-man-find-function message "Finding function %s..." run-at-time nil] 18 "\n\n(fn SELF TIME-WAITED TIME-BETWEEN-ATTEMPTS MAX-WAIT-TIME MAN-BUFFER FUNCTION-NAME MODULE-NAME)"] 0.0 0.5 5.1] 12 (#$ . 63209)]) #@268 Patch the function `Man-notify-when-ready' to search for function. The variable `erlang-man-function-name' is assumed to be bound to the function name, or to nil. The reason for patching a function is that under Emacs 19, the man command is executed asynchronously. (defalias 'erlang-man-patch-notify #[0 "\3001\f\301\302!0\210\202\210\303\304!\210\301\305!\210\306\307\310\311\312$\210\313\307\312\"\210\307\207" [(error) require advice error "This command needs the package `advice', please upgrade your Emacs." man ad-add-advice Man-notify-when-ready (erlang-Man-notify-when-ready nil t (advice lambda nil "Set point at the documentation of the function name in\n`erlang-man-function-name' when the man page is displayed." (if erlang-man-function-name (erlang-man-repeated-search-for-function (ad-get-arg 0) erlang-man-function-name) (setq erlang-man-function-name nil)))) after nil ad-activate] 5 (#$ . 64200)]) #@299 Find manual page for function `erlang-man-function-name' in buffer BUF. The function will automatically try to find the correct buffer among the opened buffers if BUF is nil. The optional parameter MODULE-NAME will make the search for the buffer more accurate. (fn BUF FUNC &optional MODULE-NAME) (defalias 'erlang-man-find-function #[770 "\206\300\301!\210\302\303\304\"\302\305\306 \"\"@\205i\211\205i\307!\211\205gq\210eb\210\310\311\312Qd\313#\203E\314v\210\315`\"\210\316\317\"\210\313\202g\310\311\320Qd\313#\203a\314v\210\315`\"\210\316\317\"\210\313\202g\316\321\"\210\322\262\207" [require cl-lib cl-remove-if-not make-closure #[257 "\301\300\206\302\303\304\"\"\207" [V0 string-match "" format "%s"] 6 "\n\n(fn BUF)"] #[257 "\300\301\302\303\"\"\207" [string-match "[Mm][Aa][Nn]" format "%s"] 6 "\n\n(fn BUF)"] buffer-list get-buffer-window re-search-forward "^[ ]*\\([a-z0-9_]*[ ]*:\\)?[ ]*" "[ ]*([A-Za-z0-9 :,_()]*)[ ]*->" t -1 set-window-point message "Found documentation for function `%s'" "[ ]*(" "Could not find function `%s'" nil] 9 (#$ . 65127)]) (defvar erlang-man-file-regexp "\\(.*\\)/man[^/]*/\\([^.]+\\)\\.\\([124-9]\\|3\\(erl\\)?\\)\\(\\.gz\\)?$") #@170 Display FILE as a `man' file. This is the default manual page display function. The variables `erlang-man-display-function' contains the function to be used. (fn FILE) (defalias 'erlang-man-display #[257 "\302\303!\210\211\2051\304!\305 \"\203,\211\306\224\306\225O\307\224\307\225O\310\311\"\210\312!\266\202\2020\313\314\")\207" [process-environment erlang-man-file-regexp require man copy-sequence string-match 1 2 setenv "MANPATH" manual-entry error "Can't find man page for %s\n"] 6 (#$ . 66342)]) #@46 Describe why the manual pages weren't found. (defalias 'erlang-man-describe-error #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211\316\317!\320!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Erlang Man Error*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "Normally, this menu should contain Erlang manual pages.\n\nIn order to find the manual pages, the variable `erlang-root-dir'\nshould be bound to the name of the directory containing the Erlang\ninstallation. The name should not include the final slash.\n\nPractically, you should add a line on the following form to\nyour ~/.emacs, or ask your system administrator to add it to\nthe site init file:\n (setq erlang-root-dir \"/the/erlang/root/dir/goes/here\")\n\nFor example:\n (setq erlang-root-dir \"/usr/local/erlang\")\n\nAlternatively, you can download the Erlang man pages\nautomatically by placing the following lines in your Emacs init\nfile or by executing the Emacs command `M-x\nerlang-man-download-ask RET' (the download URL can be customized\nwith the Emacs variable erlang-man-download-url):\n\n (require 'erlang)\n (erlang-man-download)\n\nAfter installing the line/lines in your Emacs init file or after\nrunning the command `M-x erlang-man-download-ask RET', kill and\nrestart Emacs, or restart Erlang mode with the command `M-x\nerlang-mode RET'." internal-temp-output-buffer-show standard-output] 6 (#$ . 66862) nil]) #@251 Generate the skeleton functions and menu items. The variable `erlang-skel' contains the name and descriptions of all skeletons. The skeleton routines are based on the `tempo' package. Should this package not be present, this function does nothing. (defalias 'erlang-skel-init #[0 "\303\304!\210\305\203?@\204\305B\262\2028\306K\307@A@P\310\311@8DC@A@@@\312%\210\313@!B\262A\262\202\305\314\237DD\315\301\316\n#\317 \207" [erlang-skel erlang-menu-skel-items erlang-menu-items require tempo nil tempo-define-template "erlang-" erlang-skel-include 2 erlang-tempo-tags erlang-skel-make-menu-item "Skeletons" erlang-menu-add-above erlang-menu-version-items erlang-menu-init] 8 (#$ . 68451) nil]) #@13 (fn SKEL) (defalias 'erlang-skel-make-menu-item #[257 "\300\301A@P!\3028\204@D\207@\303\304\305\306\307\3028D\307DEFD\207" [intern "tempo-template-erlang-" 3 lambda nil (interactive) funcall quote] 10 (#$ . 69173)]) #@73 Insert skeleton generated by FUNC and goto first tempo mark. (fn FUNC) (defalias 'erlang-skel-insert #[257 "\212\211 \210)\300K \207" [tempo-forward-mark] 2 (#$ . 69408)]) #@80 Insert the header generated by FUNC at the beginning of the buffer. (fn FUNC) (defalias 'erlang-skel-header #[257 "eb\210\212\211 \210)\300K \207" [tempo-forward-mark] 2 (#$ . 69587)]) (defalias 'erlang-skel-skip-blank #[0 "\300\301x\210\301\207" [" " nil] 2]) #@440 Include a template inside another template. Example of use, assuming that `erlang-skel-func' is defined: (defvar foo-skeleton '("%%% New function:" (erlang-skel-include erlang-skel-func))) Technically, this function returns the `tempo' attribute`(l ...)' which can contain other `tempo' attributes. Please see the function `tempo-define-template' for a description of the `(l ...)' attribute. (fn &rest ARGS) (defalias 'erlang-skel-include #[128 "\300\211\203\"@\262\211\203\211@B\262\211A\262\202\nA\262\202\301\237B\207" [nil l] 5 (#$ . 69857)]) (defvar erlang-skel-separator-length 70) #@53 Return a comment separator. (fn &optional PERCENT) (defalias 'erlang-skel-separator #[256 "\211\206\301\302\303\"\302Z\304\"\305Q\207" [erlang-skel-separator-length 3 make-string 37 45 "\n"] 6 (#$ . 70497)]) #@53 Return a comment separator. (fn &optional PERCENT) (defalias 'erlang-skel-double-separator #[256 "\211\206\301\302\303\"\302Z\304\"\305Q\207" [erlang-skel-separator-length 3 make-string 37 61 "\n"] 6 (#$ . 70717)]) #@125 Return the current date as a string in "DD Mon YYYY" form. The first character of DD is space if the value is less than 10. (defalias 'erlang-skel-dd-mmm-yyyy #[0 "\300 \301\302\303\304\305O!\306\307O\310\311O$\207" [current-time-string format "%2d %s %s" string-to-number 8 10 4 7 -4 nil] 8 (#$ . 70945)]) #@154 Indent current line as Erlang code. With argument, indent any additional lines of the same clause rigidly along with this one. (fn &optional WHOLE-EXP) (defalias 'erlang-indent-command #[256 "\211\2031\301 \302\211\212\203\303 \210`\262\304\305!\210`\262b\210\305y\210`\262)\211V\2050\306\307$\207\204B\212\310\302x\210n)\204B\311 \207\301 \207" [erlang-tab-always-indent erlang-indent-line nil beginning-of-line erlang-end-of-clause 1 indent-code-rigidly "\n" " " insert-tab] 9 (#$ . 71262) "P"]) #@83 Indent current line as Erlang code. Return the amount the indentation changed by. (defalias 'erlang-indent-line #[0 "d`Z\301\211\211\302\303!\210`\262\304\301w\210\305\306!\203# \262iZ\262\202A\307 \262\2042\310 \262\202<\311=\203<\312\313!\210iZ\262\211\314U\204N`|\210j\210dZ`V\203[dZb\210\315\316!\210\207" [comment-indent-function nil beginning-of-line 1 " " looking-at "%" erlang-calculate-indent current-indentation t error "Erlang mode error" 0 run-hooks erlang-indent-line-hook] 6 (#$ . 71784)]) #@119 Indent region of Erlang code. This is automagically called by the user level function `indent-region'. (fn BEG END) (defalias 'erlang-indent-region #[514 "\212\302\303dZ\302\211\211b\210\304 \210`\262\305 \210`W\2034`\306#\262\211`U\2030\307\310!\210\210\202\205\271b\210\311\302w\210\312\313!\203L \262\202u\312\314!\203X\315\262\202u\212\316`\")\262\204k\317 \262\202u\303=\203u\307\320!\210iZ\315U\204\204`|\210j\210b\210\212\321y\210`\262)dZY\203\235\302\262\2024`W\2034`\306#\262\211`U\203\265\307\310!\210\210\202\235)\266\206)\207" [case-fold-search comment-indent-function nil t beginning-of-line erlang-beginning-of-clause erlang-partial-parse error "Illegal syntax" " " looking-at "%" "$" 0 erlang-calculate-stack-indent current-indentation "Erlang mode error" 1] 13 (#$ . 72318) "r"]) #@39 Indent current buffer as Erlang code. (defalias 'erlang-indent-current-buffer #[0 "\212\214~\210\300ed\"*\207" [erlang-indent-region] 3 (#$ . 73175) nil]) #@33 Indent current Erlang function. (defalias 'erlang-indent-function #[0 "\212\300\301!\210`\302\301!\210`\303\"\266\202)\207" [erlang-end-of-function 1 erlang-beginning-of-function erlang-indent-region] 5 (#$ . 73336) nil]) #@31 Indent current Erlang clause. (defalias 'erlang-indent-clause #[0 "\212\300\301!\210`\302\301!\210`\303\"\266\202)\207" [erlang-end-of-clause 1 erlang-beginning-of-clause erlang-indent-region] 5 (#$ . 73566) nil]) #@16 (fn X STACK) (defalias 'erlang-push '(macro . #[514 "\300\301EE\207" [setq cons] 7 (#$ . 73788)])) #@14 (fn STACK) (defalias 'erlang-pop '(macro . #[257 "\300\301DE\207" [setq cdr] 5 (#$ . 73898)])) #@154 Compute appropriate indentation for current line as Erlang code. Return nil if line starts inside string, t if in a comment. (fn &optional PARSE-START) (defalias 'erlang-calculate-indent #[256 "\212`\301\211\203b\210\202\302 \210`W\203/`\303#\262\211`U\203+\304\305!\210\210\202\306\")\266\203)\207" [case-fold-search nil erlang-beginning-of-clause erlang-partial-parse error "Illegal syntax" erlang-calculate-stack-indent] 9 (#$ . 74004)]) #@46 Show syntactic information for current line. (defalias 'erlang-show-syntactic-information #[0 "\212`\301\211\302 \210`W\203\303`#\262\202 \304\305\")\266\203)\207" [case-fold-search nil erlang-beginning-of-clause erlang-partial-parse message "%S"] 7 (#$ . 74471) nil]) #@156 Parse Erlang syntax starting at FROM until TO, with an optional STATE. Value is list (stack token-start token-type in-what). (fn FROM TO &optional STATE) (defalias 'erlang-partial-parse #[770 "b\210\301!\210gz@`\302Y\203&A@\262\3038\262\3048\262\202\273\305U\203B\306\307!\203X\203E@@\310=\203EA\262\2022\203\207@@\311>\203\207A\262\202\207\306\312!\204\207\306\313!\203\207\203w@@\310=\203wA\262\202d\203\207@@\314>\203\207A\262\306\315!\203\230\316iEB\262\202;\306\317!\203\251\320iEB\262\202;\306\321!\203\324\203;@@\320=\203;\303@8@A@A\262\316EB\262\266\202;\306\322!\203\212\323\225b\210\301!\210\306!\203\363\324\225b\210\301!\210g)\325=\203;\326iEB\262\202;\306\327!\203\330iEB\262\202;\306\331!\203'\332iEB\262\202;\306\312!\204;\306\313!\203;\316iEB\262\333\323!\210\202\273\334U\203k\3351a\333\323!\210`V\205\\\336\262b0\210\202\273\210\336\262b\210\202\273\337U\203\203g\334U\203}\323u\210\202\273\323u\210\202\273\340>\203\375g\341U\203\276\342!@@\343=\203\250@@\344>\203\250A\262\202\231\203\270@@\310=\203\270A\262\323u\210\202\273\306\345!\203\332\323u\210\203\273@@\346=\203\273A\262\202\273\306\347!\203\351\302\262\323u\210\202\273\306\350!\203 \203\377@@\332=\203\377A\262\310iEB\262\303u\210\202\273\306\351!\203!\352iEB\262\303u\210\202\273\306\353!\2039\354iEB\262\324\225\324\224Zu\210\202\273\306\355!\203v@@\356>\203NA\262\202?@@\354=\203]A\262\202p@@\357>\203l\360\361!\210\202p\360\362!\210\303u\210\202\273g\363U\203\202\323u\210\202\273\306\364!\203\240\203\222\323u\210\202\273\365iEB\262\366u\210\202\273\306\367!\203\312\203\260\323u\210\202\273\366u\210\343`iEB\262\370\302w\210\371`iEB\262\202\273\306\372!\203\336\346iEB\262\303u\210\202\273\306\373!\203\352\323u\210\202\273\374U\203\367\375\376!\210\202\273\323u\210\202\273\325U\203\377iEB\262\323u\210\202\273\201@U\203\226@@\201A>\203*A\262\202@@\377=\203YA\262@@\326=\203\220\342!@@\343=\204R\342!@@\365=\203\220A\262\202\220@@\316=\203{A\262@@\377=\203tA\262\202\220\360\361!\210\202\220@@\330=\203\212\360\361!\210\202\220\360\201B!\210\323u\210\202\273\201CU\203\244\303u\210\202\273\201DU\203\270\323u\210\375\201E!\210\202\273\323u\210F\207" [erlang-variable-regexp erlang-skip-blank nil 2 3 119 looking-at "\\(end\\|after\\)[^_a-zA-Z0-9]" -> (icr begin fun try) "catch\\b.*of" "catch\\b\\s *\\($\\|%\\|.*->\\)" (icr begin try) "\\(if\\|case\\|receive\\)[^_a-zA-Z0-9]" icr "\\(try\\|after\\)[^_a-zA-Z0-9]" try "\\(of\\)[^_a-zA-Z0-9]" "\\(fun\\)[^_a-zA-Z0-9]" 1 0 40 fun "\\(begin\\)[^_a-zA-Z0-9]" begin "when[^_a-zA-Z0-9]" when forward-sexp 34 (error) string 39 (46 95) 59 last spec (when ::) "," :: "\\.\\(\\s \\|\n\\|\\s<\\)" "->" "||" || "\\(:=\\|=>\\)?<<" << ">>" (|| ->) (icr begin fun) error "Missing `end'" "Unbalanced parentheses" 63 "-type\\s \\|-opaque\\s " type 6 "-spec\\s " "^(\n" spec_arg "::" "|" 46 skip-syntax-forward "." \( 41 (|| -> :: when) "Unbalanced parenthesis" 47 92 "w"] 12 (#$ . 74757)]) #@144 From the given last position and state (stack) calculate indentation. Return nil if inside string, t if in a comment. (fn INDENT-POINT STATE) (defalias 'erlang-calculate-stack-indent #[514 "\211\205\211@A@\205@\204\304\207\3058\203!\3058\306=\207\204/\307\310!\203-\207\304\207\211@\311=\203\212 \204?\3128T\207gz\313U\203e\211A@b\210\314 \203a\315 \3128Y\203\\\207 \\S\207\3128\207\307\316!\203r\317#\207g\320>\203\203\3128\317#^\207\317#\207\211@\321=\203\273 \204\233\312\2118\\\207\307\322!\203\245\3128\207g\323U\203\266\3128T\324\312\"S^\207\324\312\"\207\211@\325>\203\307\326!\203\314\3128\207\307\310!\203\332\3128\n\\\\\207\212\211A@b\210 \203\362\307\327!\203\362\3128 \\\202\307\330!\203\3128\n\\\202\331\332w\210\333\332w\210g\334>\203\3128\n\\\202i)\207\211@\335=\203,\307\336!\203,\312A@8\207\211@\337>\203 \307\340!\203=\3128\207\211A@b\210\n\312A\203w@\341=\203V\342\262\202w@\343=\203c\342\262\202w@\344=\203w\n \204s\n\202t \\\262\345$b\210\307\346!\203\263@\344=\203\223A\262\203\247\307\347!\203\247@AA@\n\312Z\\\207\203\261@AA@\207\207\307\350!\203\371@\344=\203\306A@\202\307\211\203\320\211A@b\210\307\351!\203\360@\344=\203\342A\262\203\356@AA@\207\304\207\352 \332$\207A@@\353=\203\354!@AA@\n\\\262\352\332$\207\352\332$\207\211@\355=\203`\211A@b\210\307\356!\203WA\262\203S@@\357>\203S@A@b\210\312@8\\\312\n_\\\207\n\\\207\360u\210\333\332w\210i\207\211@\361=\205\316\307\362!\203z\363A\211\262AB\"\207 \204\204\312\2118\\\207\307\364!\203\216\3128\207\307\365!\203\230\312\202\231\304A@b\210\307\366!\203\276\354!@@\367=\203\266\315\370! \\\202\312\315\312! \\\202\312\312A@\\b\210\333\332w\210iZ\262\207" [erlang-indent-guard erlang-argument-indent erlang-indent-level erlang-icr-indent 0 3 comment looking-at "when[^_a-zA-Z0-9]" \( 2 41 erlang-record-or-function-args-p erlang-indent-find-preceding-expr "||" erlang-indent-element (44 124) << "\\(>>\\)[^_a-zA-Z0-9]" 44 erlang-indent-to-first-element (icr fun spec_arg) "\\(after\\|of\\)\\($\\|[^_a-zA-Z0-9]\\)" "\\(if\\|case\\|receive\\|try\\)[^_a-zA-Z0-9]" "\\(case\\|receive\\|try\\)[^_a-zA-Z0-9]" "a-z" nil " " (37 10) || "\\(]\\|>>\\)[^_a-zA-Z0-9]" (-> || try begin) "\\(of\\)[^_a-zA-Z0-9]" begin 5 try -> erlang-indent-find-base "\\(;\\|end\\|after\\)\\($\\|[^_a-zA-Z0-9]\\)" ";" "catch\\b\\($\\|[^_a-zA-Z0-9]\\)" "try\\($\\|[^_a-zA-Z0-9]\\)" erlang-indent-standard spec_arg last when "when\\s *\\($\\|%\\)" (icr fun) 4 :: "[},)]" erlang-calculate-stack-indent "::[^_a-zA-Z0-9]" "|" "::\\s *\\($\\|%\\)" spec 1] 14 (#$ . 77946)]) #@24 (fn STACK-TOP EXTRA) (defalias 'erlang-indent-to-first-element #[514 "A@\\b\210\300\301w\210i\207" [" " nil] 4 (#$ . 80657)]) #@37 (fn STACK-TOP INDENT-POINT TOKEN) (defalias 'erlang-indent-element #[771 "A@b\210\300 \203\301\3028!\202\303\304\"\305\306$\207" [erlang-record-or-function-args-p erlang-indent-parenthesis 2 erlang-indent-to-first-element 1 erlang-indent-standard t] 9 (#$ . 80794)]) #@182 Standard indent when in blocks or tuple or arguments. Look at last thing to see in what state we are, move relative to the base. (fn INDENT-POINT TOKEN BASE INSIDE-PARENTHESIS) (defalias 'erlang-indent-standard #[1028 "b\210\302\303!\203 \207\304 \203i\\\207gz\305U\204 \306 \203$\\\207b\210g\307=\2032\310 \\\207g\311U\203:\207g\312U\203G\211\203GS\207\306 \204P\211\204T\\\207\207" [erlang-indent-level erlang-argument-indent looking-at "||\\|,\\|->\\||" erlang-at-keyword 46 erlang-at-operator 40 erlang-indent-find-preceding-expr 37 44] 6 (#$ . 81080)]) #@88 Find the base column for current stack. (fn STACK INDENT-POINT &optional OFFSET SKIP) (defalias 'erlang-indent-find-base #[1026 "\211\204\301\262\204\262\212@\211A@b\210d`ZW\203Lu\210\302\303!\203D\211@\304>\2032A\262\203@@AA@\\\202O\202O\305!\210i\202Oi\\\262)\207" [erlang-indent-level 2 looking-at "\\s *\\($\\|%\\)" (-> ||) erlang-skip-blank] 8 (#$ . 81671)]) #@167 Return the first column of the preceding expression. This assumes that the preceding expression is either simple (i.e. an atom) or parenthesized. (fn &optional ARG) (defalias 'erlang-indent-find-preceding-expr #[256 "\212\211\204\300\262\3011\302[!0\210\202\210i\303\304x\210\3051mh\306=\2030\307u\210\302\307!\210i\202ih\310=\203h\307u\210`i\302\307!\210i\311 \203JT\202a\302\300!\210\312w\210`U\203\\\211\202ab\210iT\262\266\202\202i\2110\202q\210\202t\206u\211\262)\207" [1 (error) forward-sexp " " nil (error) 58 -1 35 erlang-at-keyword "- \200-\240"] 7 (#$ . 82070)]) (defalias 'erlang-record-or-function-args-p #[0 "\300\301!\205g\302=\206\212\3031\304\305!0\210\202\210h)\306=\207" [looking-at "[({]\\s *\\($\\|%\\)" 40 (error) forward-sexp -1 35] 2]) #@23 (fn STACK-POSITION) (defalias 'erlang-indent-parenthesis #[257 "\301 \211=\203 T\207\211V\203\\\207\211\\\207" [erlang-argument-indent erlang-indent-find-preceding-expr] 4 (#$ . 82872)]) #@76 Skip over whitespace and comments until limit reached. (fn &optional LIM) (defalias 'erlang-skip-blank #[256 "\211\204d\262\300\211\204F`W\203Fg\301U\203\302w\210\202g\303U\203,\304w\210\202\305\306!\203@\307\310\311#\203\312u\210\202\313\262\202\207" [nil 37 "^\n" 10 "\n" looking-at "\\s " re-search-forward "\\S " move -1 t] 6 (#$ . 83076)]) #@70 Are we looking at an Erlang keyword which will increase indentation? (defalias 'erlang-at-keyword #[0 "\300\301!\207" [looking-at "\\(when\\|if\\|fun\\|case\\|begin\\|of\\|receive\\|after\\|catch\\|try\\)\\b"] 2 (#$ . 83452)]) #@39 Are we looking at an Erlang operator? (defalias 'erlang-at-operator #[0 "\300\301!\207" [looking-at "\\(bnot\\|div\\|mod\\|band\\|bor\\|bxor\\|bsl\\|bsr\\)\\b"] 2 (#$ . 83685)]) #@118 Compute Erlang comment indentation. Used both by `indent-for-comment' and the Erlang specific indentation commands. (defalias 'erlang-comment-indent #[0 "\301\302!\203\303\207\301\304!\203\305 \206(\306 \207\212\307\310x\210n\203#\303\202%iT])\207" [comment-column looking-at "%%%" 0 "%%" erlang-calculate-indent current-indentation " " nil] 2 (#$ . 83870)]) #@155 Move backward to previous start of clause. With argument, do this that many times. Return t unless search stops due to end of buffer. (fn &optional ARG) (defalias 'erlang-beginning-of-clause #[256 "\211\204\300\262\211\301W\203)o\203\302\303!\204)\300u\210\202)\304u\210\302\305!\203)\300u\210\306\307\310\311[$\205?\312\224\211\203<\211b\210\313\262\207" [1 0 looking-at "\n" -1 "\\`\n" re-search-forward "\\(\\`\\|\\`\n\\|[^\\]\n\\)\\(-?[a-z]\\|'\\|-\\)" nil move 2 t] 6 (#$ . 84246) "p"]) #@100 Move to the end of the current clause. With argument, do this that many times. (fn &optional ARG) (defalias 'erlang-end-of-clause #[256 "\211\204\300\262\301\302!\203\300y\303U\204\304[!\210\305 \210\306o?\2058\211\2058\307y\210\301\302!\204\310\210\310\262\202\207" [1 looking-at "[ ]*[%\n]" 0 erlang-beginning-of-clause beginning-of-line t -1 nil] 4 (#$ . 84759) "p"]) #@48 Put mark at end of clause, point at beginning. (defalias 'erlang-mark-clause #[0 "\300`!\210\301\302!\210\300`\303\304#\210\305\302!\210\306\307!\205\310K\307\303\"\207" [push-mark erlang-end-of-clause 1 nil t erlang-beginning-of-clause boundp deactivate-mark set] 4 (#$ . 85154) nil]) #@207 Move backward to previous start of function. With positive argument, do this that many times. With negative argument, search forward. Return t unless search stops due to end of buffer. (fn &optional ARG) (defalias 'erlang-beginning-of-function #[256 "\211\204\300\262\211\301V\203G\211\301V\203\213\302\300!\203\213`\303 \304 \302\300!\203<\303 \230\203<\211\203<\211\304 \232\203<`\262\202b\266\211S\262\202 \211\301W\203\213\305\210\302\300!\210\211\301W\203\213\303 \304 \302\306!\211\203\303 \230\203\203\304 \232\203\302\306!\262\202a\266\202\203\213\211T\262\202T\211\301U\207" [1 0 erlang-beginning-of-clause erlang-name-of-function erlang-get-function-arity nil -1] 6 (#$ . 85449) "p"]) #@163 Move forward to next end of function. With argument, do this that many times. With negative argument go towards the beginning of the buffer. (fn &optional ARG) (defalias 'erlang-end-of-function #[256 "\211\204\300\262\301\302V\203N`dW\203N`\203\"\300u\210\303\300!\204-o\204)\304u\210\303\304!\210\305\262\306 \210\307\305w\210\310\311!\203@\300y\210`X\204\210S\262\202\302W\205\212`\303\300!\210\306 \210\300y\210`Y\203\202\312\313!\203\306 \210\307\305w\210\310\311!\203\202\300y\266\202\203eb\210\210T\262\202N\207" [1 t 0 erlang-beginning-of-clause -1 nil erlang-pass-over-function " " looking-at "[%\n]" erlang-beginning-of-function 2] 5 (#$ . 86190) "p"]) (byte-code "\300\301!\203\302\303\304\"\210\202\302\303\305\"\210\300\207" [default-boundp beginning-of-defun-function defalias erlang-mark-function mark-defun #[0 "\300`!\210\301\302!\210\300`\303\304#\210\305\302!\210\306\307!\205\310K\307\303\"\207" [push-mark erlang-end-of-function 1 nil t erlang-beginning-of-function boundp deactivate-mark set] 4 "Put mark at end of function, point at beginning." nil]] 3) (defalias 'erlang-pass-over-function #[0 "\300 \210\301\302!\204m\204\303\304!\210\202m?\205\304u\207" [erlang-skip-blank looking-at "\\.\\(\\s \\|\n\\|\\s<\\)" forward-sexp 1] 2]) (defalias 'erlang-name-of-function #[0 "\212\300\301!\203 \302\301\303\304#\210`\305\306!\210\211`{\262)\207" [looking-at "-[ ]*" re-search-forward nil move forward-sexp 1] 4]) #@232 Like \[fill-paragraph], but handle Erlang comments. If any of the current line is a comment, fill the comment or the paragraph of it that point is in, preserving the comment's indentation and initial `%':s. (fn &optional JUSTIFY) (defalias 'erlang-fill-paragraph #[256 "\304\211\212\305 \210\306\307P!\203\310\262\311\224\311\225{\262\202U\306\312!\204@\313\304w\210`f\314=\2032\315u\210\202`f\316=\203\317\320!\210\202\306!\203U\310\262\321i\322\"\311\224\311\225{P\262)\204^\323!\207\214\212\324y\311U\203m\306\325!\204`\306\325!\204v\320y\210`)\212\320y\210\306\325!\204y`)}\210 \326P \326P\323!,\207" [comment-start-skip paragraph-start fill-prefix paragraph-separate nil beginning-of-line looking-at "\\s *" t 0 "%\\|$" "^%\n\"\\\\" 92 2 34 forward-sexp 1 make-string 32 fill-paragraph -1 "^\\s *%" "\\|^[ %]*$"] 6 (#$ . 87682) "P"]) #@308 Create additional Erlang clause header. Parses the source file for the name of the current Erlang function. Create the header containing the name, A pair of parentheses, and an arrow. The space between the function name and the first parenthesis is preserved. The point is placed between the parentheses. (defalias 'erlang-generate-new-clause #[0 "\212\301 \205 \302\303!)\212\301 \205\304 )\211\203\204\305\306!\210n\203'l\204-\307\210\310 \210c\210\212\311\261\210)\205=\312 \207" [erlang-new-clause-with-arguments erlang-beginning-of-clause erlang-get-function-name t erlang-get-function-arrow error "Can't find name of current Erlang function" nil newline ") " erlang-clone-arguments] 4 (#$ . 88560) nil]) #@143 Insert, at the point, the argument list of the previous clause. The mark is set at the beginning of the inserted text, the point at the end. (defalias 'erlang-clone-arguments #[0 "\212\300 \210\301 \205 \302 )`\204\303\304!\210c\210\305!\207" [beginning-of-line erlang-beginning-of-clause erlang-get-function-arguments error "Can't clone argument list" set-mark] 4 (#$ . 89295) nil]) #@111 Return the name of the module as specified by `-module'. Return nil if file contains no `-module' attribute. (defalias 'erlang-get-module #[0 "\212\214~\210eb\210\300 \301\302\"\216\303\304d\305#\205\306\307\310\224\310\225\"!)\262*\207" [match-data make-closure #[0 "\301\300!\207" [V0 store-match-data] 2] re-search-forward "^-module\\s *(\\s *\\(\\(\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\)?\\)\\s *)\\s *\\." t erlang-remove-quotes buffer-substring-no-properties 1] 5 (#$ . 89693)]) #@513 Extract the module name from a file name. First, the directory part is removed. Second, the part of the file name matching `erlang-file-name-extension-regexp' is removed. Should the match fail, nil is returned. By modifying `erlang-file-name-extension-regexp' to match files other than Erlang source files, Erlang specific functions could be applied on non-Erlang files. Most notably; the support for Erlang modules in the tags system could be used by files written in other languages. (fn &optional FILE) (defalias 'erlang-get-module-from-file-name #[256 "\211\204\262\211\205\302!\262\303 \"\205\211\304\211\224O\207" [buffer-file-name erlang-file-name-extension-regexp file-name-nondirectory string-match 0] 4 (#$ . 90235)]) #@387 Parse list of `function/arity' as used by `-import' and `-export'. Point must be before the opening bracket. When the function returns the point will be placed after the closing bracket. The function does not return an error if the list is incorrectly formatted. Return list of (function . arity). The order of the returned list corresponds to the order of the parsed Erlang list. (defalias 'erlang-get-function-arity-list #[0 "\301\302 \210\303u\210h\304=\203=\302 \210\305\306!\203=\307\310\303\224\303\225\"!\311\310T\224T\225\"!BB\262\312\225b\210\302 \210\303u\210h\313=\204 \211\237\207" [erlang-atom-regexp-matches nil erlang-skip-blank 1 91 looking-at "\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)/\\([0-9]+\\)\\>" erlang-remove-quotes buffer-substring-no-properties string-to-number 0 44] 6 (#$ . 90987)]) #@66 Return a list of `(function . arity)' as specified by `-export'. (defalias 'erlang-get-export #[0 "\212eb\210\300 \301\302\303\"\216\304\305d\306#\203 \307 \210\211\310 \244\262\202\f)\262)\207" [match-data nil make-closure #[0 "\301\300!\207" [V0 store-match-data] 2] re-search-forward "^-export\\s *(" t erlang-skip-blank erlang-get-function-arity-list] 6 (#$ . 91857)]) #@161 Parse an Erlang source file for imported functions. Return an alist with module name as car part and list of conses containing function and arity as cdr part. (defalias 'erlang-get-import #[0 "\212eb\210\301 \302\303\304\"\216\305\306d\307#\203Z\310 \210\311!\203\f\312\313\314\224\314\225\"!\314\225b\210\310 \210g\315=\203V\316u\210\310 \210\317 \320\"\211\203M\211A\244\241\266\202\fBB\262\266\210\202\f\211\237)\266\202)\207" [erlang-atom-regexp match-data nil make-closure #[0 "\301\300!\207" [V0 store-match-data] 2] re-search-forward "^-import\\s *(" t erlang-skip-blank looking-at erlang-remove-quotes buffer-substring-no-properties 0 44 1 erlang-get-function-arity-list assoc] 8 (#$ . 92242)]) #@408 Return name of current function, or nil. If optional argument is non-nil, everything up to and including the first `(' is returned. Normally used in conjunction with `erlang-beginning-of-clause', e.g.: (save-excursion (if (not (eobp)) (forward-char 1)) (and (erlang-beginning-of-clause) (erlang-get-function-name t))) (fn &optional ARG) (defalias 'erlang-get-function-name #[256 "\211\203\300\202 \301\302\303!\205\304\224\225\"\207" [0 1 looking-at "^\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\s *(" buffer-substring-no-properties] 5 (#$ . 92971)]) #@310 Return arrow of current function, could be "->" or nil. Normally used in conjunction with `erlang-beginning-of-clause', e.g.: (save-excursion (if (not (eobp)) (forward-char 1)) (and (erlang-beginning-of-clause) (erlang-get-function-arrow))) (defalias 'erlang-get-function-arrow #[0 "\212\300\301d\302#\210\303`\304Z`T\")\207" [re-search-forward "->" t buffer-substring-no-properties 2] 4 (#$ . 93645)]) #@62 Return the number of arguments of function at point, or nil. (defalias 'erlang-get-function-arity #[0 "\301\302\303Q!\207" [erlang-atom-regexp erlang-get-arity-after-regexp "^" "\\s *("] 4 (#$ . 94122)]) #@169 Return the number of arguments in argument list at point, or nil. The point should be before the opening parenthesis of the argument list before calling this function. (defalias 'erlang-get-argument-list-arity #[0 "\300\301!\207" [erlang-get-arity-after-regexp "\\s *("] 2 (#$ . 94334)]) #@84 Return the number of arguments in argument list after REGEXP, or nil. (fn REGEXP) (defalias 'erlang-get-arity-after-regexp #[257 "\300!\205\212\301\225b\210\302 )\207" [looking-at 0 erlang-get-arity] 3 (#$ . 94628)]) #@168 Return the number of arguments in argument list at point, or nil. The point should be after the opening parenthesis of the argument list before calling this function. (defalias 'erlang-get-arity #[0 "\3001m\301\302\211\203hm\203\303\262\303\262\202\304\305!\203#\303\262\202\304\306!\203/\307y\210\202\304\310!\203F\301U\203?T\262\301\225b\210\202\304\311!\203WT\262\301\225b\210\202\301U\203aT\262\312\307!\210\202\266\2020\207\210\303\207" [(error) 0 t nil looking-at "\\s *)" "\\s *\\($\\|%\\)" 1 "\\s *<<[^>]*?>>" "\\s *," forward-sexp] 4 (#$ . 94856)]) #@111 Return the name and arity of the function at point, or nil. The return value is a string of the form "foo/1". (defalias 'erlang-get-function-name-and-arity #[0 "\300 \301 \205\211\205\302\303#\207" [erlang-get-function-name erlang-get-function-arity format "%s/%d"] 6 (#$ . 95455)]) #@47 Return arguments of current function, or nil. (defalias 'erlang-get-function-arguments #[0 "\300\301!\205\"\212\3021\303\225\211Sb\210\304 \210\305`S\"\2620\202!\210\306)\207" [looking-at "^\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\s *(" (error) 0 forward-sexp buffer-substring-no-properties nil] 4 (#$ . 95751)]) #@419 Return the module and function under the point, or nil. Should no explicit module name be present at the point, the list of imported functions is searched. The following could be returned: ("module" "function") -- Both module and function name found. (nil "function") -- No module name was found. nil -- No function name found. See also `erlang-get-identifier-at-point'. (defalias 'erlang-get-function-under-point #[0 "\300 \301!\302!\303!\304=\203D\207\211\205\305D\207" [erlang-get-identifier-at-point erlang-id-kind erlang-id-module erlang-id-name qualified-function nil] 6 (#$ . 96119)]) #@909 Return the erlang identifier at point, or nil. Should no explicit module name be present at the point, the list of imported functions is searched. When an identifier is found return a list with 4 elements: 1. Kind - One of the symbols qualified-function, record, macro, module or nil. 2. Module - Module name string or nil. In case of a qualified-function the module is explicitly specified (like module:fun()) and the search fails if no entries with correct module are found. For other kinds the module is guessed: either fetched from import statements or it is assumed to be the local module. In these cases the module is just a preference. If no matching entries are found the search will be retried without regard to module. 3. Name - String name of function, module, record or macro. 4. Arity - Integer in case of functions and macros if the number of arguments could be found, otherwise nil. (defalias 'erlang-get-identifier-at-point #[0 "\212\304\305 \306\307\"\216gz\310=\203\311\304x\210\312\304x\210h\313=\203.\314\315 P!\203.\316\317 !\202N\314\n!\2039\316 \202N\314 \320P!\203F\321 \202N\314 !\205N\322 )\262*\207" [case-fold-search erlang-atom-regexp erlang-module-function-regexp erlang-name-regexp nil match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] 32 " " "[:word:]_:'" 63 looking-at "\\(MODULE\\):" erlang-get-qualified-function-id-at-point erlang-get-module ":" erlang-get-module-id-at-point erlang-get-some-other-id-at-point] 4 (#$ . 96776)]) #@25 (fn &optional MODULE) (defalias 'erlang-get-qualified-function-id-at-point #[256 "\211\206\f\301\302\303\224\303\225\"!\301\302T\224T\225\"!\304\225b\210\305 \306F\207" [erlang-atom-regexp-matches erlang-remove-quotes buffer-substring-no-properties 1 0 erlang-get-argument-list-arity qualified-function] 8 (#$ . 98302)]) (defalias 'erlang-get-module-id-at-point #[0 "\300\301\302\224\302\225\"!\303\304\304F\207" [erlang-remove-quotes buffer-substring-no-properties 1 module nil] 5]) (defalias 'erlang-get-some-other-id-at-point #[0 "\301\302\303\224\303\225\"!\304 \305\211\211\203-\204-\306@A\"\203&@@\262\202 A\262\202 h\307=\2039\310\262\202Sh\311=\203E\312\262\202S\204S\235\204S\313 \262\303\225b\210\314 \262F\207" [erlang-int-bifs erlang-remove-quotes buffer-substring-no-properties 0 erlang-get-import nil assoc 35 record 63 macro erlang-get-module erlang-get-argument-list-arity] 9]) #@35 (fn SLOTS ID-STRING &rest BODY) (defalias 'erlang-with-id '(macro . #[642 "\300\301!\302\303DD\304\305\306\"\"BBB\207" [make-symbol "id" let* erlang-id-to-list mapcar make-closure #[257 "\211\301\302\303\"!\300DD\207" [V0 intern format "erlang-id-%s"] 6 "\n\n(fn SLOT)"]] 10 (#$ . 99242)])) (byte-code "\300\301\302\303#\300\207" [function-put erlang-with-id lisp-indent-function 2] 4) #@11 (fn ID) (defalias 'erlang-id-to-string #[257 "\211\205@\300!\301!\302!\303!\304!\305\306\203!\305\307\"\202\"\310\203.\305\311\"\202/\310\203<\305\312\"\202=\310%\266\205\207" [erlang-id-to-list erlang-id-kind erlang-id-module erlang-id-name erlang-id-arity format "%s%s%s%s" "%s " "" "%s:" "/%s"] 14 (#$ . 99643)]) #@11 (fn ID) (defalias 'erlang-id-to-list #[257 "\211<\203\207\303 \304\305\"\216\306 \210\307 p\304\310#\216\311!\210\312\313\n\"\205N\314\315\"\2054\316\314\315\"!\314\317\"\314\320\"\314\321\"\205M\322\314\321 \"!F*\266\202)\207" [erlang-mode-syntax-table case-fold-search erlang-id-regexp match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] erlang-ensure-syntax-table-is-initialized syntax-table #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table nil string-match match-string 1 intern 2 3 4 string-to-number] 11 (#$ . 99989)]) #@11 (fn ID) (defalias 'erlang-id-kind #[257 "\300!@\207" [erlang-id-to-list] 3 (#$ . 100600)]) #@11 (fn ID) (defalias 'erlang-id-module #[257 "\300!A@\207" [erlang-id-to-list] 3 (#$ . 100700)]) #@11 (fn ID) (defalias 'erlang-id-name #[257 "\300\301!8\207" [2 erlang-id-to-list] 4 (#$ . 100803)]) #@11 (fn ID) (defalias 'erlang-id-arity #[257 "\300\301!8\207" [3 erlang-id-to-list] 4 (#$ . 100909)]) (defalias 'erlang-default-function-or-module #[0 "\300\301 !\302!\303!\304!\305\267\202(\306\307\"\202)\306\310\"\202)\306\311\"\202)\211\2033\306\312#\207\207" [erlang-id-to-list erlang-get-identifier-at-point erlang-id-kind erlang-id-module erlang-id-name #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (module 19 record 26 macro 33)) format "%s:" "-record(%s" "-define(%s" "%s:%s"] 9]) #@45 Return STR, possibly with quotes. (fn STR) (defalias 'erlang-add-quotes-if-needed #[257 "\301\211;\203\302\303\"\204\304\305\306\307\211%\262\305\305Q\202\211)\207" [case-fold-search nil string-match "\\`\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\'" replace-regexp-in-string "'" "\\'" t] 7 (#$ . 101458)]) #@50 Return STR without quotes, if present. (fn STR) (defalias 'erlang-remove-quotes #[257 "\300 \301\302\"\203\303\304O\202\305!\210\207" [match-data string-match "\\`'\\(.*\\)'\\'" 1 -1 store-match-data] 5 (#$ . 101822)]) #@105 Returns non-nil if there is an exported function in the current buffer between point and MAX. (fn MAX) (defalias 'erlang-match-next-exported-function #[257 "\3012?\205\302!\205\303 \203\304\301\305 \"\210\2020\207" [erlang-inhibit-exported-function-name-face return erlang-match-next-function erlang-last-match-exported-p throw match-data] 4 (#$ . 102057)]) #@101 Searches forward in current buffer for the next erlang function, bounded by position MAX. (fn MAX) (defalias 'erlang-match-next-function #[257 "\301\302#\207" [erlang-defun-prompt-regexp re-search-forward move-point] 5 (#$ . 102435)]) #@85 Returns non-nil if match-data describes the name and arity of an exported function. (defalias 'erlang-last-match-exported-p #[0 "\212\300 \301\302\"\216\303\224b\210\304\305\306 !\307 \")\262)\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] 1 erlang-function-exported-p erlang-remove-quotes erlang-get-function-name erlang-get-function-arity] 4 (#$ . 102679)]) #@95 Returns non-nil if function of name and arity is exported in current buffer. (fn NAME ARITY) (defalias 'erlang-function-exported-p #[514 "\212\300 \301 \302!\210B\235\266\202)\207" [match-data erlang-get-export store-match-data] 6 (#$ . 103088)]) #@366 If the module name doesn't match file name, ask for permission to change. The variable `erlang-check-module-name' controls the behaviour of this function. It it is nil, this function does nothing. If it is t, the source is silently changed. If it is set to the atom `ask', the user is prompted. This function is normally placed in the hook `before-save-hook'. (defalias 'erlang-check-module-name #[0 "\203I\301\302 !\301\303\304 !!;\203G\211;\203G\230\204G\305=\204*\306\307!\203G\212\214~\210eb\210\310\311d\305#\203F\312\224b\210\312\224\312\225|\210\211c\210*\266\313\207" [erlang-check-module-name erlang-add-quotes-if-needed erlang-get-module erlang-get-module-from-file-name buffer-file-name t y-or-n-p "Module does not match file name. Modify source? " re-search-forward "^-module\\s *(\\s *\\(\\(\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\)?\\)\\s *)\\s *\\." 1 nil] 6 (#$ . 103347)]) #@741 Insert a semicolon character and possibly a prototype for the next line. The variable `erlang-electric-semicolon-criteria' states a criterion, when fulfilled a newline is inserted, the next line is indented and a prototype for the next line is inserted. Normally the prototype consists of " ->". Should the semicolon end the clause a new clause header is generated. The variable `erlang-electric-semicolon-insert-blank-lines' controls the number of blank lines inserted between the current line and new function header. Behaves just like the normal semicolon when supplied with a numerical arg, point is inside string or comment, or when there are non-whitespace characters following the point on the current line. (fn &optional ARG) (defalias 'erlang-electric-semicolon #[256 "\304\305!!\210\211\204&<\203\306>\203&\307 \204&\310\311!\203&\312 !\204*\313\211\207\314\315 \210\316 \210\313\210\317 \210\3201D\316 \210\3140\202L\210n\205u\321\322!\205un\204X\212\323c)\207\3241m\325 \210 \205k\212\326 \210\317 !)0\207\210n\205u\321\322!\207" [erlang-electric-commands erlang-electric-semicolon-criteria erlang-electric-newline-inhibit erlang-electric-semicolon-insert-blank-lines self-insert-command prefix-numeric-value erlang-electric-semicolon erlang-in-literal looking-at "\\s *\\(%.*\\)?$" erlang-test-criteria-list nil t undo-boundary erlang-indent-line newline (error) delete-char -1 " ->" (error) erlang-generate-new-clause beginning-of-line] 4 (#$ . 104305) "P"]) #@406 Insert a comma character and possibly a new indented line. The variable `erlang-electric-comma-criteria' states a criterion, when fulfilled a newline is inserted and the next line is indented. Behaves just like the normal comma when supplied with a numerical arg, point is inside string or comment, or when there are non-whitespace characters following the point on the current line. (fn &optional ARG) (defalias 'erlang-electric-comma #[256 "\303\304!!\210\211\204&<\203\305>\203&\306 \204&\307\310!\203&\311 !\204*\312\211\207\313\314 \210\315 \210\312\210\316 \210\3171@\315 0\207\210n\205H\320\321!\207" [erlang-electric-commands erlang-electric-comma-criteria erlang-electric-newline-inhibit self-insert-command prefix-numeric-value erlang-electric-comma erlang-in-literal looking-at "\\s *\\(%.*\\)?$" erlang-test-criteria-list nil t undo-boundary erlang-indent-line newline (error) delete-char -1] 4 (#$ . 105812) "P"]) #@87 Insert a less-than sign, and optionally mark it as an open paren. (fn &optional ARG) (defalias 'erlang-electric-lt #[256 "\300!\210`\301X?\205K\212\302u\210`f\303=\205J\304`\305\"\306=?\205J\307``T\305\310$\210\311u\210\307``T\305\306$\210\311u\210`f\303=\205J\312``T\313#\210\311u\210\2026)\207" [self-insert-command 2 -2 60 get-text-property category bitsyntax-open-inner put-text-property bitsyntax-open-outer 1 remove-text-properties (category nil)] 6 (#$ . 106762) "p"]) #@79 Return t if point is immediately after a bit-syntax close parenthesis (`>>'). (defalias 'erlang-after-bitsyntax-close #[0 "`\300Y\205\212\301u\210`f\302=\205\303`\304\"\305=?)\207" [3 -2 62 get-text-property category bitsyntax-close-outer] 3 (#$ . 107251)]) #@68 Return true if point is immediately after a function arrow (`->'). (defalias 'erlang-after-arrow #[0 "`\302Y\2051\212\303u\210`\206`Sf)\304=\2051<\203\"\305>\2051\306 ?\2051\307\310!\2051\311 !\207" [erlang-electric-commands erlang-electric-arrow-criteria 2 -1 45 erlang-electric-gt erlang-in-literal looking-at "\\s *\\(%.*\\)?$" erlang-test-criteria-list] 2 (#$ . 107519)]) #@90 Insert a greater-than sign, and optionally mark it as a close paren. (fn &optional ARG) (defalias 'erlang-electric-gt #[256 "\301!\210\302 \2039\212\303u\210\304``T\305\306$\210\307u\210\304``T\305\310$\210\307u\210`f\311=\2057\312``T\313#\210\307u\210\202#)\207\314 \203]\315\316 \210\307\210\317 \210\3201S\321 0\202[\210n\205[\322\323!)\207\307\207" [erlang-electric-newline-inhibit self-insert-command erlang-after-bitsyntax-close -2 put-text-property category bitsyntax-close-inner nil bitsyntax-close-outer 62 remove-text-properties (category nil) erlang-after-arrow t undo-boundary newline (error) erlang-indent-line delete-char -1] 6 (#$ . 107911) "p"]) #@614 Insert a '>'-sign and possibly a new indented line. This command is only `electric' when the `>' is part of an `->' arrow. The variable `erlang-electric-arrow-criteria' states a sequence of criteria, which decides when a newline should be inserted and the next line indented. It behaves just like the normal greater than sign when supplied with a numerical arg, point is inside string or comment, or when there are non-whitespace characters following the point on the current line. After being split/merged into `erlang-after-arrow' and `erlang-electric-gt', it is now unused and disabled. (fn &optional ARG) (defalias 'erlang-electric-arrow #[256 "h\303\304!!\210\204-<\203\305>\203-\211\306=\203-\307 \204-\310\311!\203-\312 !\2041\313\211\207\314\315 \210\313\210\316 \210\3171D\320 0\207\210n\205L\321\322!\207" [erlang-electric-commands erlang-electric-arrow-criteria erlang-electric-newline-inhibit self-insert-command prefix-numeric-value erlang-electric-arrow 45 erlang-in-literal looking-at "\\s *\\(%.*\\)?$" erlang-test-criteria-list nil t undo-boundary newline (error) erlang-indent-line delete-char -1] 5 (#$ . 108591) "P"]) #@494 Break line at point and indent, continuing comment if within one. The variable `erlang-electric-newline-criteria' states a criterion, when fulfilled a newline is inserted and the next line is indented. Should the current line begin with a comment, and the variable `comment-multi-line' be non-nil, a new comment start is inserted. Should the previous command be another electric command we assume that the user pressed newline out of old habit, hence we will do nothing. (fn &optional ARG) (defalias 'erlang-electric-newline #[256 "\211\204\203 \n>\203\306\207\211\204% <\203\307 >\203%\310\f!\204+\311\312!!\207 \203R\212\313 \210\314\315P!)\203R\316\225\206D\317\224\317\225`^{\311 \210\320 \210\211c\207\311 \210\320 \210\321 \207" [erlang-electric-newline-inhibit last-command erlang-electric-newline-inhibit-list erlang-electric-commands erlang-electric-newline-criteria comment-multi-line nil erlang-electric-newline erlang-test-criteria-list newline prefix-numeric-value beginning-of-line looking-at "\\s *" 1 0 undo-boundary indent-according-to-mode comment-start-skip] 4 (#$ . 109757) "P"]) #@684 Given a list of criterion functions, test if criteria are fulfilled. Each element in the criteria list can a function returning nil, t or the atom `stop'. t means that the criterion is fulfilled, `stop' means that it isn't fulfilled and that the search should stop, and nil means continue searching. Should the list contain the atom t the criterion is assumed to be fulfilled, unless preceded by a function returning `stop', of course. Should the argument be the atom t instead of a list, the criterion is assumed to be trivially true. Should all functions return nil, the criteria are assumed not to be fulfilled. Return t if criteria fulfilled, nil otherwise. (fn CRITERIA) (defalias 'erlang-test-criteria-list #[257 "\211\300=\203\300\207\212\301\203+\211\204+@\300=\203\300\262\202$@ \262A\262\202\n\211\2057\211\302=?\2057\300\262)\207" [t nil stop] 4 (#$ . 110885)]) #@207 Test if point is in string, quoted atom or comment. Return one of the three atoms `atom', `string', and `comment'. Should the point be inside none of the above mentioned types of context, nil is returned. (defalias 'erlang-in-literal #[0 "\212\300K \3018\302=\203\303\202%\3018\203\304\202%\3058\203$\306\202%\307\262)\207" [syntax-ppss 3 39 atom string 4 comment nil] 3 (#$ . 111790)]) #@110 Test if point is at end of an Erlang function. This function is designed to be a member of a criteria list. (defalias 'erlang-at-end-of-function-p #[0 "\212\300 \210`)\212\301\302!\210`)=\207" [erlang-skip-blank erlang-beginning-of-function -1] 3 (#$ . 112197)]) #@108 Test if point is at end of an Erlang clause. This function is designed to be a member of a criteria list. (defalias 'erlang-at-end-of-clause-p #[0 "\212\300 \210`)\212\301\302!\210`)=\207" [erlang-skip-blank erlang-beginning-of-clause -1] 3 (#$ . 112468)]) #@219 Return `stop' if inside parenthesis list, nil otherwise. Knows about the list comprehension syntax. When the point is after `||', `stop' is not returned. This function is designed to be a member of a criteria list. (defalias 'erlang-stop-when-inside-argument-list #[0 "\212\3001I`\301\302\303!\210g\304=\204\266\305\202E`W\2033`\306#\262\211`U\203/\307\310!\210\210\202\211@\205>\211@@@\311=?\205C\305\266\2020\202K\210\301)\207" [(error) nil up-list -1 91 stop erlang-partial-parse error "Illegal syntax" ||] 7 (#$ . 112733)]) #@102 Return `stop' when at function guards. This function is designed to be a member of a criteria list. (defalias 'erlang-stop-when-at-guard #[0 "\212\300 \210\301\302!\205\301\303!?\205\304)\207" [beginning-of-line looking-at "^\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\)\\s *(" "^\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\).*->" stop] 2 (#$ . 113288)]) #@103 Return `stop' when in a type spec line. This function is designed to be a member of a criteria list. (defalias 'erlang-stop-when-in-type-spec #[0 "\212\300 \210\301 \302\303\"\216\304\305!)\262\205\306)\207" [beginning-of-line match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] looking-at "-\\(spec\\|type\\|callback\\)" stop] 4 (#$ . 113727)]) #@265 Return non-nil if next lines are empty. The variable `erlang-next-lines-empty-threshold' contains the number of lines required to be empty. A line containing only spaces and tabs is considered empty. This function is designed to be a member of a criteria list. (defalias 'erlang-next-lines-empty-p #[0 "\205#\212\301\211\203 \302V\203 \303y\210\304\305!\262S\262\202\262)\207" [erlang-next-lines-empty-threshold t 0 1 looking-at "\\s *$"] 4 (#$ . 114115)]) #@111 Test if next readable token is the keyword end. This function is designed to be a member of a criteria list. (defalias 'erlang-at-keyword-end-p #[0 "\212\300 \210\301\302!)\207" [erlang-skip-blank looking-at "end[^_a-zA-Z0-9]"] 2 (#$ . 114594)]) #@59 Alist of old tags commands and the replacement functions. (defvar erlang-tags-function-alist '((find-tag . erlang-find-tag) (find-tag-other-window . erlang-find-tag-other-window) (find-tag-regexp . erlang-find-tag-regexp) (find-tag-other-frame . erlang-find-tag-other-frame)) (#$ . 114847)) #@51 Non-nil when the Erlang tags system is installed. (defvar erlang-tags-installed nil (#$ . 115144)) #@69 List of files in tag list. Used when finding tag on form `module:'. (defvar erlang-tags-file-list nil (#$ . 115249)) #@75 Like `tags-completion-table', this table contains `tag' and `module:tag'. (defvar erlang-tags-completion-table nil (#$ . 115372)) #@61 Non-nil when Erlang module recognising functions installed. (defvar erlang-tags-buffer-installed-p nil (#$ . 115508)) #@28 Temporary list of buffers. (defvar erlang-tags-buffer-list nil (#$ . 115632)) #@48 Temporary storage for `tags-completion-table'. (defvar erlang-tags-orig-completion-table nil (#$ . 115716)) #@45 Temporary storage for `find-tag-tag-order'. (defvar erlang-tags-orig-tag-order nil (#$ . 115830)) #@52 Temporary storage for `find-tag-regexp-tag-order'. (defvar erlang-tags-orig-regexp-tag-order nil (#$ . 115934)) #@51 Temporary storage for `find-tag-search-function'. (defvar erlang-tags-orig-search-function nil (#$ . 116052)) #@58 Temporary storage for `find-tag-regexp-search-function'. (defvar erlang-tags-orig-regexp-search-function nil (#$ . 116168)) #@50 Temporary storage for `tags-table-format-hooks'. (defvar erlang-tags-orig-format-hooks nil (#$ . 116298)) #@54 Temporary storage for `tags-table-format-functions'. (defvar erlang-tags-orig-format-functions nil (#$ . 116410)) #@283 Install an alternate version of tags, aware of Erlang modules. After calling this function, the tags functions are aware of Erlang modules. Tags can be entered on the for `module:tag' as well as on the old form `tag'. In the completion list, `module:tag' and `module:' shows up. (defalias 'erlang-tags-init #[0 "\303\304!\210\305\300!\210\306 \307Y\203\310\311\312\313\314$\207\315\316 !\210\314\211\207" [find-tag-default-function emacs-major-version erlang-tags-installed require etags make-local-variable erlang-find-tag-for-completion 25 add-hook xref-backend-functions erlang-etags--xref-backend nil t erlang-tags-define-keys current-local-map] 5 (#$ . 116531) nil]) #@69 Bind tags commands to keymap MAP aware of Erlang modules. (fn MAP) (defalias 'erlang-tags-define-keys #[257 "\211\203,\211@@@A\303\304 \"!\211\203#\305@#\210\211A\262\202\266\211A\262\202\210\306\n\"\210\307 \207" [erlang-tags-function-alist global-map erlang-menu-base-items append where-is-internal define-key erlang-menu-substitute erlang-menu-init] 9 (#$ . 117216)]) #@164 Like `find-tag'. Capable of retrieving Erlang modules. Tags can be given on the forms `tag', `module:', `module:tag'. (fn MODTAGNAME &optional NEXT-P REGEXP-P) (defalias 'erlang-find-tag #[769 "\300\301#!\210\302\207" [switch-to-buffer erlang-find-tag-noselect t] 8 (#$ . 117611) (erlang-tag-interactive "Find `module:tag' or `tag': ")]) #@99 Like `find-tag-other-window' but aware of Erlang modules. (fn TAGNAME &optional NEXT-P REGEXP-P) (defalias 'erlang-find-tag-other-window #[769 "\300\301 !\302#\211q\210`\303\301 \304!\210\303\301 \"\210\"\207" [window-point selected-window erlang-find-tag-noselect set-window-point switch-to-buffer-other-window] 11 (#$ . 117961) (erlang-tag-interactive "Find `module:tag' or `tag' other window: ")]) #@89 Like `find-tag-other-frame' but aware of Erlang modules. (fn TAGNAME &optional NEXT-P) (defalias 'erlang-find-tag-other-frame #[513 "\301\302\")\207" [pop-up-frames t erlang-find-tag-other-window] 5 (#$ . 118375) (erlang-tag-interactive "Find `module:tag' or `tag' other frame: ")]) #@96 Like `find-tag-regexp' but aware of Erlang modules. (fn REGEXP &optional NEXT-P OTHER-WINDOW) (defalias 'erlang-find-tag-regexp #[769 "\211\203\300\202 \301\302#\207" [erlang-find-tag-other-window erlang-find-tag t] 7 (#$ . 118668) (byte-code "\300\301!\203\n\302\303!\207\304\305!\207" [fboundp find-tag-regexp erlang-tag-interactive "Find `module:regexp' or `regexp': " error "This version of Emacs can't find tags by regexps"] 2)]) #@50 Find next tag, like \[find-tag] with prefix arg. (defalias 'erlang-find-next-tag #[0 "\302 \203\f\303\304!\202\303\305!)\207" [current-prefix-arg erlang-tags-installed (4) call-interactively erlang-find-tag find-tag] 2 (#$ . 119116) nil]) #@98 Like `find-tag-noselect' but aware of Erlang modules. (fn MODTAGNAME &optional NEXT-P REGEXP-P) (defalias 'erlang-find-tag-noselect #[769 "\204\301J\262\302K\301\"\210\303\304!\203\302K\304\305\"\210\306 \307\310\"\216\311\312\"\203\227\313\211\224O\314\204;\212\315 \210\316K )\211\204\210\204j\212\315K\317!\203Y\315K\320!\203Y\316K \202i\321\322\203d\323\202e\324#\210)\203;\325@!\211;\203\201\230\203\201@\262A\210\202;\326!\206\221\327!q\266\202\265\311\330\"\203\256\331 \210\332\216\333K#\210)\202\265\333K#\210p)\207" [erlang-tags-file-list last-tag set boundp tags-loop-form (erlang-find-tag nil t) current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] string-match ":$" 0 nil visit-tags-table-buffer tags-table-files same t error "No %stags containing %s" "more " "" erlang-get-module-from-file-name get-file-buffer find-file-noselect ":" erlang-tags-install-module-check #[0 "\300 \207" [erlang-tags-remove-module-check] 1] find-tag] 10 (#$ . 119365) (erlang-tag-interactive "Find `module:tag' or `tag': ")]) #@15 (fn PROMPT) (defalias 'erlang-tag-interactive #[257 "\3011\f\302\303!0\210\202\210\302\304!\210\203%\305\306!\307W\203\"\310\202#\311D\207\312 \211\2033\313\314#\2024\315\316\"\211\317\232\203H\206I\320\321!\202I\211C\207" [current-prefix-arg (error) require etags tags nil prefix-numeric-value 0 - t erlang-default-function-or-module format "%s(default %s) " completing-read erlang-tags-complete-tag "" error "There is no default tag"] 6 (#$ . 120486)]) #@39 Install our own tag search functions. (defalias 'erlang-tags-install-module-check #[0 "\302J\303K\302\304B\"\210\305\212\306J\211\2051\211@;\203*\307@!\203*\307@!q\210\310 \210\211A\262\202\262)\207" [erlang-tags-orig-format-functions erlang-tags-buffer-list tags-table-format-functions set erlang-tags-recognize-tags-table nil tags-table-computed-list get-file-buffer erlang-tags-install-local] 4 (#$ . 120967)]) #@53 Install our tag search functions in current buffer. (defalias 'erlang-tags-install-local #[0 "?\205N\306\300!\210\307p B\306\302!\210\310J\306\303!\210\311J\306\304!\210\312J\306\305!\210\313J\306\312!\210\314\n\306\313!\210\315 \306\310!\210\316\317\n\"\306\311!\210\316\317 \"\211 \207" [erlang-tags-buffer-installed-p erlang-tags-buffer-list erlang-tags-orig-tag-order erlang-tags-orig-regexp-tag-order erlang-tags-orig-search-function erlang-tags-orig-regexp-search-function make-local-variable t find-tag-tag-order find-tag-regexp-tag-order find-tag-search-function find-tag-regexp-search-function erlang-tags-search-forward erlang-tags-regexp-search-forward mapcar erlang-make-order-function-aware-of-modules] 3 (#$ . 121399)]) #@10 (fn F) (defalias 'erlang-make-order-function-aware-of-modules #[257 "\300\301\302\303\304\305\306\307D\310BB\311BBFE\207" [lambda (tag) let (mod) (when (string-match ":" tag) (setq mod (substring tag 0 (match-beginning 0))) (setq tag (substring tag (match-end 0) nil))) and funcall quote (tag) ((or (null mod) (erlang-tag-at-point-match-module-p mod)))] 10 (#$ . 122152)]) #@12 (fn MOD) (defalias 'erlang-tag-at-point-match-module-p #[257 "\211\300\301K !\230\207" [erlang-get-module-from-file-name file-of-tag] 4 (#$ . 122535)]) #@39 Remove our own tags search functions. (defalias 'erlang-tags-remove-module-check #[0 "\302K\303\"\210\212 \211\205!\304@!\203\211@q\210\305 \210\211A\262\202\262)\207" [erlang-tags-orig-format-functions erlang-tags-buffer-list set tags-table-format-functions buffer-name erlang-tags-remove-local] 3 (#$ . 122695)]) #@54 Remove our tag search functions from current buffer. (defalias 'erlang-tags-remove-local #[0 "\205!\305K\300\306\"\210\305K\307 \"\210\305K\310\n\"\210\305K\311 \"\210\305K\312\f\"\207" [erlang-tags-buffer-installed-p erlang-tags-orig-tag-order erlang-tags-orig-regexp-tag-order erlang-tags-orig-search-function erlang-tags-orig-regexp-search-function set nil find-tag-tag-order find-tag-regexp-tag-order find-tag-search-function find-tag-regexp-search-function] 3 (#$ . 123025)]) #@163 Install our functions in all loaded TAGS files. This function is added to `tags-table-format-hooks/functions' when searching for a tag on the form `module:tag'. (defalias 'erlang-tags-recognize-tags-table #[0 "\300K \205\n\301 \210\302\207" [etags-recognize-tags-table erlang-tags-install-local t] 1 (#$ . 123515)]) #@97 Forward search function, aware of Erlang module prefix. (fn TAG &optional BOUND NOERROR COUNT) (defalias 'erlang-tags-search-forward #[1025 "\301\302\"\203\303\225\304O\262\305=\203\306$\207$\207" [erlang-tags-orig-search-function string-match ":" 0 nil erlang-tags-search-forward search-forward] 9 (#$ . 123839)]) #@104 Forward regexp search function, aware of Erlang module prefix. (fn TAG &optional BOUND NOERROR COUNT) (defalias 'erlang-tags-regexp-search-forward #[1025 "\301\302\"\203\303\225\304O\262\305=\203\306$\207$\207" [erlang-tags-orig-regexp-search-function string-match ":" 0 nil erlang-tags-regexp-search-forward re-search-forward] 9 (#$ . 124179)]) (byte-code "\300\301!\203\302\303!\210\301\304\305\306#\210\202\307\304\310\311\312$\210\313\304\312\"\210\312\207" [fboundp advice-add require etags etags-tags-completion-table :around erlang-etags-tags-completion-table-advice ad-add-advice (erlang-replace-tags-table nil t (advice lambda nil (if erlang-replace-etags-tags-completion-table (setq ad-return-value (erlang-etags-tags-completion-table)) ad-do-it))) around nil ad-activate] 5) #@15 (fn OLDFUN) (defalias 'erlang-etags-tags-completion-table-advice #[257 "\203\301 \207\211 \207" [erlang-replace-etags-tags-completion-table erlang-etags-tags-completion-table] 2 (#$ . 124993)]) #@200 Perform tags completion on the text around point. Completes to the set of names listed in the current tags table. Should the Erlang tags system be installed this command knows about Erlang modules. (defalias 'erlang-complete-tag #[0 "\301\302!\210\303\304 )\207" [erlang-replace-etags-tags-completion-table require etags t complete-tag] 2 (#$ . 125199) nil]) (defalias 'erlang-find-tag-for-completion #[0 "\212\300\301x\210`)\211`=?\205\302`\"\207" ["[:word:][:digit:]_:'" nil buffer-substring-no-properties] 4]) #@30 (fn STRING PREDICATE WHAT) (defalias 'erlang-tags-complete-tag #[771 "r\301\302 !q\210\212\303\304 \210)\211\303=\203\305\306 #\202#\307\306 #*\207" [enable-recursive-minibuffers window-buffer minibuffer-selected-window t visit-tags-table-buffer all-completions erlang-tags-completion-table try-completion] 7 (#$ . 125723)]) #@66 Build completion table. Tags on the form `tag' or `module:tag'. (defalias 'erlang-tags-completion-table #[0 "\301K\301\302KM\210\303\216\302 )\207" [erlang-tags-orig-completion-table tags-completion-table erlang-tags-completion-table-1 #[0 "\301M\207" [erlang-tags-orig-completion-table tags-completion-table] 2]] 2 (#$ . 126064)]) (defalias 'erlang-tags-completion-table-1 #[0 "\304\300!\210\206\305\306 \210\n\211*\207" [erlang-tags-completion-table tags-completion-table-function tags-completion-table erlang-tags-orig-completion-table make-local-variable nil erlang-etags-tags-completion-table] 2]) (defalias 'erlang-etags-tags-completion-table #[0 "\302Y\203 \303 \207\304\305\306\"\303 \211\203\"\211@\307 \"\210A\266\202\202\210 )\207" [emacs-major-version obarray 25 erlang-etags-tags-completion-table-list make-vector 511 0 intern] 5]) (defalias 'erlang-etags-tags-completion-table-list #[0 "\301\302\303\"ed#\304\211\212eb\210g\305=\203=\306\307!\203=\310\224\310\225{\311!\262\2036\312PB\262\313PB\262\314y\266\202\315\316\304\317#\203\214\310\224\203R\310\224\310\225{\202^\320\224b\210\321\304x\210`\320\224{\310y\210\211B\262;\203s\312QB\262`\304\247\203\202@Y\205\207\322#\266\202)\207" [buffer-file-name make-progress-reporter format "Making tags completion table for %s..." nil 12 looking-at "\f\n\\([^,\n]*\\),.*\n" 1 erlang-get-module-from-file-name ":" ":module_info" 2 re-search-forward "[\f \n ()=,; ]?\\(?:\\([^\n]+\\)\\)?" t 0 "^\f \n ()=,; " progress-reporter-do-update] 11]) (defalias 'erlang-etags--xref-backend #[0 "\300\207" [erlang-etags] 1]) #@16 (fn FEATURE) (defalias 'erlang-soft-require #[257 "\300\301!!\205 \302!\207" [locate-library symbol-name require] 4 (#$ . 127704)]) (byte-code "\300\301!\203\300\302!\203\300\303!\203\300\304!\203\305\306!\210\300\207" [erlang-soft-require xref cl-generic eieio etags eval (progn (cl-defmethod xref-backend-identifier-at-point ((_backend (eql erlang-etags))) (if (eq this-command 'xref-find-references) (if (use-region-p) (buffer-substring-no-properties (region-beginning) (region-end)) (thing-at-point 'symbol)) (erlang-id-to-string (erlang-get-identifier-at-point)))) (cl-defmethod xref-backend-definitions ((_backend (eql erlang-etags)) identifier) (erlang-xref-find-definitions identifier)) (cl-defmethod xref-backend-apropos ((_backend (eql erlang-etags)) identifier) (erlang-xref-find-definitions identifier t)) (cl-defmethod xref-backend-identifier-completion-table ((_backend (eql erlang-etags))) (let ((erlang-replace-etags-tags-completion-table t)) (tags-completion-table))) (defclass erlang-xref-location (xref-file-location) ((arity :type fixnum :initarg :arity :reader erlang-xref-location-arity)) :documentation "An erlang location is a file location plus arity.") (cl-defmethod xref-location-marker ((locus erlang-xref-location)) (cl-call-next-method locus)))] 2) #@39 (fn IDENTIFIER &optional IS-REGEXP) (defalias 'erlang-xref-find-definitions #[513 "\300!\301!\302!\303!\304!\305\267\202!\306!\207\307 $\207\203.\310\n%\207\311 $\207" [erlang-id-to-list erlang-id-kind erlang-id-module erlang-id-name erlang-id-arity #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (module 21 qualified-function 25)) erlang-xref-find-definitions-module erlang-xref-find-definitions-qualified-function erlang-xref-find-definitions-module-tag erlang-xref-find-definitions-tag] 13 (#$ . 129002)]) #@15 (fn MODULE) (defalias 'erlang-xref-find-definitions-module #[257 "\300\301!\205[\300\302!\205[\303p\304\211\212\305?\"\203V\304\262\306 \211\203R\211@\307!\211\203I\211\230\203I\235\204IB\262\301\302\310\311#\"B\262\266\211A\262\202\210\202)\237\266\204\207" [fboundp xref-make xref-make-file-location t nil erlang-visit-tags-table-buffer tags-table-files erlang-get-module-from-file-name 1 0] 14 (#$ . 129580)]) #@242 Find definitions of TAG in MODULE preferably with arity ARITY. If one single perfect match was found return only that (ignoring other definitions matching TAG). If IS-REGEXP is non-nil then TAG is a regexp. (fn MODULE TAG ARITY IS-REGEXP) (defalias 'erlang-xref-find-definitions-qualified-function #[1028 "\300\301!\205\n\301\"\302\"\211@\303\304$\305\"\206&\306\"\207" [fboundp etags--xref-find-definitions erlang-split-xrefs-on-module erlang-refine-xrefs qualified-function erlang-single-arity-match erlang-sort-by-arity] 12 (#$ . 130031)]) #@312 Find definitions of TAG preferably in MODULE and with arity ARITY. Return definitions outside MODULE if none are found inside. If IS-REGEXP is non-nil then TAG is a regexp. If one single perfect match was found return only that (ignoring other definitions matching TAG). (fn KIND MODULE TAG ARITY IS-REGEXP) (defalias 'erlang-xref-find-definitions-module-tag #[1285 "\300\301!\205\n\301\"\302\"\211@\303 $\304\"\206.\305 %\207" [fboundp etags--xref-find-definitions erlang-split-xrefs-on-module erlang-refine-xrefs erlang-single-arity-match erlang-xref-find-definitions-tag] 15 (#$ . 130601)]) #@344 Find definitions of TAG preferably in local file and with arity ARITY. If one single perfect match was found return only that (ignoring other definitions matching TAG). If no such local match was found then look for a matching BIF in the same way. If IS-REGEXP is non-nil then TAG is a regexp. (fn KIND TAG ARITY IS-REGEXP &optional XREFS) (defalias 'erlang-xref-find-definitions-tag #[1284 "\300#\206\301\302!\205\302\303\"\304!\211@\305\n\n $A@AA@\306 \"\206o\305  \f$\262\306 \"\206o\305  \f$\262\204^\204^\306 \"\206o\307\310\f\"\310 \"\310\"#\207" [erlang-etags-regexp fboundp etags--xref-find-definitions t erlang-split-xrefs erlang-refine-xrefs erlang-single-arity-match append erlang-sort-by-arity] 18 (#$ . 131230)]) #@33 (fn XREFS KIND TAG IS-REGEXP) (defalias 'erlang-refine-xrefs #[1028 "\300>\204\211\204\301!\203\207\205\215\302\303!\205\215\302\304!\205\215\302\305!\205\215\306\306\211\211\211:\203_@\262\303!\262\304!\262\307\310\311$\203O\202SB\262A\262\306\262\202.\266\211\306\211:\203\203@\262\312\313   $!\244\262A\262\202d\211\237\266\203\206\213\262\207" [(record module) erlang-too-many-files-in-xrefs fboundp xref-item-location xref-location-group slot-value nil cl-member :test string-equal reverse erlang-xrefs-in-file] 15 (#$ . 132011)]) #@14 (fn XREFS) (defalias 'erlang-too-many-files-in-xrefs #[257 "\205\301\302\303\"!\211GW?\205\304\305!\210\306\262\207" [erlang-max-files-to-visit-for-refining-xrefs delete-dups mapcar erlang-xref-truename-file message "Too many hits to consider arity (see `erlang-max-files-to-visit-for-refining-xrefs')" t] 5 (#$ . 132609)]) #@32 (fn FILE KIND TAG IS-REGEXP) (defalias 'erlang-xrefs-in-file #[1028 "\300\301!\205rr\302!q\210\212eb\210\303#\304P\305\211\211\211\211\211\211\306\305\307#\203m\310\311!\262\212\312 )\262\301\313\314\315\316 \317\320\321 & \262\322 #\262\203d=\204d\301\323\324\325%B\262\262\305\262\202\237\266\210*\207" [fboundp make-instance find-file-noselect erlang-etags-regexp "\\s *(" nil re-search-forward t match-string-no-properties 1 erlang-get-arity erlang-xref-location :file :line line-number-at-pos :column 0 :arity erlang-xref-summary xref-item :summary :location] 22 (#$ . 132949)]) #@23 (fn KIND TAG ARITY) (defalias 'erlang-xref-summary #[771 "\300\301\302>\203\300\303\"\202\304\203\300\305\"\202\304$\207" [format "%s%s%s" (record macro module) "%s " "" "/%s"] 10 (#$ . 133578)]) #@300 Attempt to find one perfect match. If we have all information needed to consider arity then return a single perfect match or nothing. If there are more than one match nothing is returned. If we don't have all information needed to consider arity just return XREFS as is. (fn XREFS WANTED-ARITY) (defalias 'erlang-single-arity-match #[514 "\300\"\2037\301\302\203.\303W\203.@\304!\211=\203%\262T\262A\262\266\202 \305=\2056\211C\207G\305=\205?\207" [erlang-should-consider-arity-p 0 nil 2 erlang-xref-arity 1] 8 (#$ . 133798)]) #@27 (fn XREFS WANTED-ARITY) (defalias 'erlang-sort-by-arity #[514 "\300\"\2039\301\211\203.@\302!\211=\203 B\262\202%B\262A\262\266\202 \303\304!\304!#\207\207" [erlang-should-consider-arity-p nil erlang-xref-arity append reverse] 8 (#$ . 134359)]) #@27 (fn XREFS WANTED-ARITY) (defalias 'erlang-should-consider-arity-p #[514 "\211\205\205\300\301!\205\300\302!\205\301\302@!!\207" [fboundp erlang-xref-location-p xref-item-location] 5 (#$ . 134637)]) #@27 (fn KIND TAG IS-REGEXP) (defalias 'erlang-etags-regexp #[771 "\300\203 \202\f\301!\302Q\203\303\202\304\305\267\202)\306P\202*\307P\202*\2032\303\2023\310Q\207" ["\\(" regexp-quote "\\)" "" "^" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (record 29 macro 35)) "-record\\s-*(\\s-*" "-define\\s-*(\\s-*" "\\_>"] 7 (#$ . 134853)]) #@13 (fn XREF) (defalias 'erlang-xref-arity #[257 "\300\301!\205\300\302!\205\301\302!!\207" [fboundp erlang-xref-location-arity xref-item-location] 4 (#$ . 135250)]) #@21 (fn XREFS MODULE) (defalias 'erlang-split-xrefs-on-module #[514 "\300\211\211\203%\211@\301!\230\203\211B\262\202\211B\262A\266\202\202\210\302!\302!B\207" [nil erlang-xref-module reverse] 8 (#$ . 135425)]) #@14 (fn XREFS) (defalias 'erlang-split-xrefs #[257 "\300 \205 \301\300 !\302\211\211\211\203@\211@\303!\230\203$\211B\262\2029\304!\305\230\2034\211B\262\2029\211B\262A\266\202\202 \210\306!\306!\306!E\207" [buffer-file-name file-truename nil erlang-xref-truename-file erlang-xref-module "erlang" reverse] 9 (#$ . 135657)]) #@13 (fn XREF) (defalias 'erlang-xref-module #[257 "\300\301!!\207" [erlang-get-module-from-file-name erlang-xref-file] 4 (#$ . 136007)]) #@13 (fn XREF) (defalias 'erlang-xref-truename-file #[257 "\300!\211\205\n\301!\207" [erlang-xref-file file-truename] 4 (#$ . 136149)]) #@13 (fn XREF) (defalias 'erlang-xref-file #[257 "\300\301!\205\300\302!\205\301\302!!\207" [fboundp xref-location-group xref-item-location] 4 (#$ . 136291)]) #@18 (fn CONT CBUF) (defalias 'erlang-visit-tags-table-buffer #[514 "\301W\203\n\302!\207\302\"\207" [emacs-major-version 26 visit-tags-table-buffer] 5 (#$ . 136458)]) #@117 Command to execute start a new Erlang shell. Change this variable to use your favorite Erlang compilation package. (defvar erlang-shell-function 'inferior-erlang (#$ . 136635)) #@116 Command to execute to display Erlang shell. Change this variable to use your favorite Erlang compilation package. (defvar erlang-shell-display-function 'inferior-erlang-run-or-select (#$ . 136820)) #@118 Command to execute to compile current buffer. Change this variable to use your favorite Erlang compilation package. (defvar erlang-compile-function 'inferior-erlang-compile (#$ . 137026)) #@52 Erlang function to call to compile an erlang file. (defvar erlang-compile-erlang-function "c" (#$ . 137221)) #@117 Command to execute to view last compilation. Change this variable to use your favorite Erlang compilation package. (defvar erlang-compile-display-function 'inferior-erlang-run-or-select (#$ . 137337)) #@116 Command to execute to go to the next error. Change this variable to use your favorite Erlang compilation package. (defvar erlang-next-error-function 'inferior-erlang-next-error (#$ . 137546)) #@226 Start a new Erlang shell. The variable `erlang-shell-function' decides which method to use, default is to start a new Erlang host. It is possible that, in the future, a new shell on an already running host will be started. (defalias 'erlang-shell #[0 "\301!\207" [erlang-shell-function call-interactively] 2 (#$ . 137746) nil]) (defalias 'run-erlang 'erlang-shell) #@42 Display an Erlang shell, or start a new. (defalias 'erlang-shell-display #[0 "\301!\207" [erlang-shell-display-function call-interactively] 2 (#$ . 138120) nil]) #@42 Compile Erlang module in current buffer. (defalias 'erlang-compile #[0 "\301!\207" [erlang-compile-function call-interactively] 2 (#$ . 138289) nil]) #@29 Display compilation output. (defalias 'erlang-compile-display #[0 "\301!\207" [erlang-compile-display-function call-interactively] 2 (#$ . 138446) nil]) #@57 Display next error message from the latest compilation. (defalias 'erlang-next-error #[0 "\301!\207" [erlang-next-error-function call-interactively] 2 (#$ . 138606) nil]) #@43 The name of the Erlang link shell buffer. (defvar erlang-shell-buffer-name "*erlang*" (#$ . 138784)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable erlang-shell-prompt-read-only funcall function #[0 "\300\207" [t] 1] "If non-nil, the prompt will be read-only.\n\nAlso see the description of `ielm-prompt-read-only'." :type boolean :package-version (erlang . "2.8.0")] 8) #@31 Keymap used by Erlang shells. (defvar erlang-shell-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\207" [make-sparse-keymap define-key "\211" erlang-complete-tag "" comint-bol "" beginning-of-line "" nil "\215" compile-goto-error] 5) (#$ . 139201)) #@73 When non-nil, file name used to store Erlang shell history information. (defvar erlang-input-ring-file-name "~/.erlang_history" (#$ . 139529)) (defvar erlang-shell-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [erlang-shell-mode-hook variable-documentation put "Hook run after entering Erlang Shell mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp erlang-shell-mode-map definition-name erlang-shell-mode] 4) (defvar erlang-shell-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [erlang-shell-mode-abbrev-table erlang-shell-mode-map variable-documentation put purecopy "Keymap for `erlang-shell-mode'." boundp erlang-shell-mode-syntax-table definition-name erlang-shell-mode (lambda (#1=#:def-tmp-var) (defvar erlang-shell-mode-syntax-table #1#)) make-syntax-table "Syntax table for `erlang-shell-mode'." (lambda (#1#) (defvar erlang-shell-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `erlang-shell-mode'." derived-mode-parent comint-mode] 5) #@300 Major mode for interacting with an Erlang shell. The following special commands are available: \{erlang-shell-mode-map} In addition to any hooks its parent mode `comint-mode' might have run, this mode runs the hook `erlang-shell-mode-hook', as the final or penultimate step during initialization. (defalias 'erlang-shell-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R 5=\204R\326 \3255C#\210\327 !\210\330\f!\210 5\331 \210p6\3327\306\333!\2108\307\2119:\307\211;<\334\335\336\337\307$\210\334\335\340\337\307$\210=>\341\307!\210\306\342!\210\334\342\343\"\210\344\345!\210\306\346!\210\344\347 \350\351!\203\266\352\353\354#\210\352\355\356#\210\350\357!\203\305\352\360\361/B#\210\211\262BC&\362 \210)\363\364!\207" [delay-mode-hooks major-mode mode-name erlang-shell-mode-map erlang-shell-mode-syntax-table erlang-shell-mode-abbrev-table make-local-variable t comint-mode erlang-shell-mode "Erlang Shell" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table erlang-mode-variables "^[^>=]*> *" comint-prompt-read-only add-hook comint-output-filter-functions inferior-erlang-strip-delete nil inferior-erlang-strip-ctrl-m comint-read-input-ring kill-buffer-hook comint-write-input-ring compilation-minor-mode 1 minor-mode-overriding-map-alist make-sparse-keymap boundp compilation-skip-threshold define-key [mouse-2] erlang-mouse-2-command " " erlang-RET-command compilation-menu-map [menu-bar compilation] "Errors" erlang-tags-init run-mode-hooks erlang-shell-mode-hook local-abbrev-table compilation-last-buffer comint-prompt-regexp erlang-shell-prompt-read-only comint-eol-on-send comint-input-ignoredups comint-scroll-show-maximum-output comint-scroll-to-bottom-on-output erlang-input-ring-file-name comint-input-ring-file-name] 8 (#$ . 140909) nil]) #@126 Command bound to `mouse-2' in inferior Erlang buffer. Selects Comint or Compilation mode command as appropriate. (fn EVENT) (defalias 'erlang-mouse-2-command #[257 "\302 \303\304\"\216\212\305!\210\306\307 \310\"*:\262\203\311\312\313\"!\207\311\312 \314\"!\207" [compilation-mode-map comint-mode-map current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] mouse-set-point get-text-property line-beginning-position message call-interactively lookup-key [mouse-2] [mouse-2]] 5 (#$ . 142998) "e"]) #@110 Command bound to `RET' in inferior Erlang buffer. Selects Comint or Compilation mode command as appropriate. (defalias 'erlang-RET-command #[0 "\302\303 \304\":\203\305\306\307\"!\207\305\306 \307\"!\207" [compilation-mode-map comint-mode-map get-text-property line-beginning-position message call-interactively lookup-key " "] 4 (#$ . 143547) nil]) #@137 When nil, `inferior-erlang-display-buffer' use only selected frame. When t, all frames are searched. When 'raise, the frame is raised. (defvar inferior-erlang-display-buffer-any-frame nil (#$ . 143907)) #@267 The type of Erlang shell to use. When this variable is set to the atom `oldshell', the old shell is used. When set to `newshell' the new shell is used. Should the variable be nil, the default shell is used. This variable influence the setting of other variables. (defvar inferior-erlang-shell-type 'newshell (#$ . 144118)) #@31 The name of the Erlang shell. (defvar inferior-erlang-machine "erl" (#$ . 144450)) #@85 The options used when activating the Erlang shell. This must be a list of strings. (defvar inferior-erlang-machine-options nil (#$ . 144539)) #@42 The name of the inferior Erlang process. (defvar inferior-erlang-process-name "inferior-erlang" (#$ . 144688)) #@41 The name of the inferior Erlang buffer. (defvar inferior-erlang-buffer-name erlang-shell-buffer-name (#$ . 144805)) #@276 Number of seconds before `inferior-erlang-wait-prompt' timeouts. The time specified is waited after every output made by the inferior Erlang shell. When this variable is t, we assume that we always have a prompt. When nil, we will wait forever, or until \[keyboard-quit]. (defvar inferior-erlang-prompt-timeout 60 (#$ . 144928)) #@50 Process of last invoked inferior Erlang, or nil. (defvar inferior-erlang-process nil (#$ . 145266)) #@49 Buffer of last invoked inferior Erlang, or nil. (defvar inferior-erlang-buffer nil (#$ . 145372)) (eval-after-load "uniquify" #[0 "\300\301\302\"\207" [add-to-list uniquify-list-buffers-directory-modes erlang-shell-mode] 3]) #@618 Run an inferior Erlang. With prefix command, prompt for command to start Erlang with. This is just like running Erlang in a normal shell, except that an Emacs buffer is used for input and output. \ The command line history can be accessed with \[comint-previous-input] and \[comint-next-input]. The history is saved between sessions. Entry to this mode calls the functions in the variables `comint-mode-hook' and `erlang-shell-mode-hook' with no arguments. The following commands imitate the usual Unix interrupt and editing control characters: \{erlang-shell-mode-map} (fn &optional COMMAND) (defalias 'inferior-erlang #[256 "\306\307!\210\310\211\203\311\262\312D\262\202/\262 \262\n\313\267\202/\314B\262\202/\315\316\"\262\317 \f\"\320!\321\322 \310&\210r q\210\211)\266\323 !\324K\310\"\210\203f\325 !\210\202j\326 !\210\327=\204z\n\330=\203z\331 \332 \207" [inferior-erlang-machine inferior-erlang-machine-options inferior-erlang-shell-type inferior-erlang-buffer-name default-directory inferior-erlang-buffer require comint nil "sh" "-c" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (oldshell 33 newshell 41)) "-oldshell" append ("-newshell" "-env" "TERM" "vt100") expand-file-name create-file-buffer apply make-comint-in-buffer get-buffer-process set-process-query-on-exit-flag switch-to-buffer-other-window switch-to-buffer windows-nt newshell t erlang-shell-mode inferior-erlang-process-name list-buffers-directory inferior-erlang-process erlang-inferior-shell-split-window system-type comint-process-echoes] 11 (#$ . 145604) (byte-code "\205\301\302!C\207" [current-prefix-arg read-shell-command "Erlang command: "] 2)]) #@69 Switch to an inferior Erlang buffer, possibly starting new process. (defalias 'inferior-erlang-run-or-select #[0 "\300 \204\301 \207\302\303!\207" [inferior-erlang-running-p inferior-erlang inferior-erlang-display-buffer t] 2 (#$ . 147350) nil]) #@642 Make the inferior Erlang process visible. The window is returned. Should `inferior-erlang-display-buffer-any-frame' be nil the buffer is displayed in the current frame. Should it be non-nil, and the buffer already is visible in any other frame, no new window will be created. Should it be the atom 'raise, the frame containing the window will be raised. Should the optional argument SELECT be non-nil, the window is selected. Should the window be in another frame, that frame is raised. Note, should the mouse pointer be places outside the raised frame, that frame will become deselected before the next command. (fn &optional SELECT) (defalias 'inferior-erlang-display-buffer #[256 "\303 \204 \304\305!\210\306!\307\310!\204'\311 \212\312 !\210\311 \262)\313!\266\202H\n\203H\211\203H\2049\314=\203H\310 \315!=\204H\316\315!!\210\203P\313!\210\317\320!\210\207" [inferior-erlang-display-buffer-any-frame inferior-erlang-buffer window-system inferior-erlang-running-p error "No inferior Erlang process is running" inferior-erlang-window fboundp selected-frame selected-window switch-to-buffer-other-window select-window raise window-frame raise-frame sit-for 0] 6 (#$ . 147605) nil]) #@45 Non-nil when an inferior Erlang is running. (defalias 'inferior-erlang-running-p #[0 "\205\302!\303>\205 \205\304 !\207" [inferior-erlang-process inferior-erlang-buffer process-status (run open) buffer-name] 2 (#$ . 148822)]) #@86 Return the window containing the inferior Erlang, or nil. (fn &optional ALL-FRAMES) (defalias 'inferior-erlang-window #[256 "\301 \205\211\203\302\303\"\207\302!\207" [inferior-erlang-buffer inferior-erlang-running-p get-buffer-window t] 4 (#$ . 149062)]) #@54 Wait until the inferior Erlang shell prompt appears. (defalias 'inferior-erlang-wait-prompt #[0 "\304=?\205H\305 \204\306\307!\210r q\210\310\212\311\n!b\210\312y\210\313 !)\204>\211\2040\304\262\314\315!\210\316\n\"\204\306\317!\210\202\211\205E\314\320!\262)\207" [inferior-erlang-prompt-timeout inferior-erlang-buffer inferior-erlang-process comint-prompt-regexp t inferior-erlang-running-p error "No inferior Erlang shell is running" nil process-mark 0 looking-at message "Waiting for Erlang shell prompt (press C-g to abort)." accept-process-output "No Erlang shell prompt before timeout" ""] 4 (#$ . 149331)]) #@237 If not already at a prompt, try to send an empty cmd to get a prompt. The empty command resembles hitting RET. This is useful in some situations, for instance if a crash or error report from sasl has been printed after the last prompt. (defalias 'inferior-erlang-send-empty-cmd-unless-already-at-prompt #[0 "rq\210d\303V\205\212\304 !b\210\305y\210\306\n!)?\205\307\310!)\207" [inferior-erlang-buffer inferior-erlang-process comint-prompt-regexp 1 process-mark 0 looking-at inferior-erlang-send-command ""] 2 (#$ . 149968)]) (autoload 'comint-send-input "comint") #@295 Send command CMD to the inferior Erlang. The contents of the current command line (if any) will be placed at the next prompt. If optional second argument is non-nil the command is inserted into the history list. Return the position after the newly inserted command. (fn CMD &optional HIST) (defalias 'inferior-erlang-send-command #[513 "\305 \204 \306\307!\210p\310\311!! \203\312\202GT\nq\210b\210c\210\313\203, \202-\314\315\313\316\"\210* \204C\317\320\321#\313\316#\210q\210\\\207" [inferior-erlang-process comint-process-echoes inferior-erlang-buffer comint-input-filter comint-eol-on-send inferior-erlang-running-p error "No inferior Erlang process is running" marker-position process-mark 0 nil ignore comint-send-input t walk-windows make-closure #[257 "\303!\n=\205\304!\300U\205\305\300\301\\\"\207" [V0 V1 inferior-erlang-buffer window-buffer window-point set-window-point] 5 "\n\n(fn WINDOW)"]] 10 (#$ . 150544)]) #@86 Remove `^H' (delete) and the characters it was supposed to remove. (fn &optional S) (defalias 'inferior-erlang-strip-delete #[256 "\300\301!\2057\300\302!\2057\212\303\304!\203\301J\202\302Jb\210\305\306w\210`d=?\2056\307\310!\210n\204\311\310!\210\202)\207" [boundp comint-last-input-end comint-last-output-start called-interactively-p interactive "^" nil delete-char 1 backward-delete-char] 3 (#$ . 151507) nil]) #@86 Strip trailing `^M' characters from the current output group. (fn &optional STRING) (defalias 'inferior-erlang-strip-ctrl-m #[256 "\300\301!\2055\300\302!\2055\303\304p!!\212\305\306!\203\301J\202\302Jb\210\307\310\311#\2052\312\313\311\211#\210\202!)\262\207" [boundp comint-last-input-end comint-last-output-start process-mark get-buffer-process called-interactively-p interactive re-search-forward " +$" t replace-match ""] 6 (#$ . 151941) nil]) #@550 Compile the file in the current buffer. With prefix arg, compiles for debug. Should Erlang return `{error, nofile}' it could not load the object module after completing the compilation. This is due to a bug in the compile command `c' when using the option `outdir'. There exists two workarounds for this bug: 1) Place the directory in the Erlang load path. 2) Set the Emacs variable `erlang-compile-use-outdir' to nil. To do so, place the following line in your `~/.emacs'-file: (setq erlang-compile-use-outdir nil) (fn ARG) (defalias 'inferior-erlang-compile #[257 "\305 \210\306 \210\307 \310 \311\312O\313\314BC\205\315\316D#\317r q\210\320\321!\203)\321 \210)\322\323\"\317\"\262\324\311!\210\325 \210r q\210\317 \317\223\210) \211\207" [erlang-compile-extra-opts inferior-erlang-buffer compilation-error-list compilation-parsing-end compilation-last-buffer save-some-buffers inferior-erlang-prepare-for-input inferior-erlang-compile-outdir erlang-local-buffer-file-name 0 -4 append outdir debug_info export_all nil fboundp compilation-forget-errors inferior-erlang-send-command inferior-erlang-compute-compile-command sit-for inferior-erlang-wait-prompt] 9 (#$ . 152408) "P"]) #@209 Create an inferior erlang buffer if needed and ready it for input. The buffer is displayed, according to `inferior-erlang-display-buffer' unless the optional NO-DISPLAY is non-nil. (fn &optional NO-DISPLAY) (defalias 'inferior-erlang-prepare-for-input #[256 "\300 \204\n\212\301 \210)\300 \204\302\303!\210\211\204\304 \210\305 \210\306\307!\210\310 \207" [inferior-erlang-running-p inferior-erlang error "Error starting inferior Erlang shell" inferior-erlang-display-buffer inferior-erlang-send-empty-cmd-unless-already-at-prompt sit-for 0 inferior-erlang-wait-prompt] 3 (#$ . 153633)]) #@58 Return the directory to compile the current buffer into. (defalias 'inferior-erlang-compile-outdir #[0 "\300\301\302 !!\300\301!!\303!\304P\305\306\303!\307P!!\211\310\230\203)\311!\203)\303!\207\303!\207" [directory-file-name file-name-directory erlang-local-buffer-file-name file-name-as-directory "ebin" file-name-nondirectory expand-file-name "." "src" file-directory-p] 7 (#$ . 154233)]) #@25 (fn MODULE-NAME OPTS) (defalias 'inferior-erlang-compute-compile-command #[514 "\301\211\211\302 \2037\2047\2037@\262A\262\303@\302 \"\203 A\304\262\211\2033\211\"\262\210\202 \207" [erlang-compile-command-function-alist nil erlang-local-buffer-file-name string-match t] 10 (#$ . 154640)]) #@25 (fn MODULE-NAME OPTS) (defalias 'inferior-erlang-compute-erl-compile-command #[514 "\302\236\211A\203\303\304 \305!$\207\303\306\307\310\307 \n\305\311  \"!\310\211\307& \207" [erlang-compile-use-outdir erlang-compile-erlang-function outdir format "%s(\"%s\"%s)." inferior-erlang-format-comma-opts "f(%s), {ok, %s} = file:get_cwd(), file:set_cwd(\"%s\"), %s = %s(\"%s\"%s), file:set_cwd(%s), f(%s), %s." "Tmp8742" "Tmp7236" remq] 16 (#$ . 154959)]) #@25 (fn MODULE-NAME OPTS) (defalias 'inferior-erlang-compute-leex-compile-command #[514 "\301 \302\303\"!\304\305\306!$\207" [erlang-leex-compile-opts erlang-local-buffer-file-name inferior-erlang-remove-any-trailing-dot inferior-erlang-compute-erl-compile-command format "f(LErr1__), f(LErr2__), case case leex:file(\"%s\", [%s]) of ok -> ok; {ok,_} -> ok; {ok,_,_} -> ok; LErr1__ -> LErr1__ end of ok -> %s; LErr2__ -> LErr2__ end." inferior-erlang-format-comma-opts] 9 (#$ . 155428)]) #@25 (fn MODULE-NAME OPTS) (defalias 'inferior-erlang-compute-yecc-compile-command #[514 "\301 \302\303\"!\304\305\306!$\207" [erlang-yecc-compile-opts erlang-local-buffer-file-name inferior-erlang-remove-any-trailing-dot inferior-erlang-compute-erl-compile-command format "f(YErr1__), f(YErr2__), case case yecc:file(\"%s\", [%s]) of {ok,_} -> ok; {ok,_,_} -> ok; YErr1__ -> YErr1__ end of ok -> %s; YErr2__ -> YErr2__ end." inferior-erlang-format-comma-opts] 9 (#$ . 155925)]) #@12 (fn STR) (defalias 'inferior-erlang-remove-any-trailing-dot #[257 "\211\300\301O\302\230\203\211\303GSO\207\207" [-1 nil "." 0] 4 (#$ . 156412)]) #@13 (fn OPTS) (defalias 'inferior-erlang-format-comma-opts #[257 "\211\204\300\207\301\302!P\207" ["" ", " inferior-erlang-format-opt] 4 (#$ . 156569)]) #@12 (fn OPT) (defalias 'inferior-erlang-format-opt #[257 "\211;\203\n\300\300Q\207\301!\203\302\303\304\"!\207\211:\204!\305\306\"\207\211:\2038\211A<\2030\307!\207\302@AD!\207\310\311\"\207" ["\"" vectorp inferior-erlang-tuple append nil format "%s" inferior-erlang-list error "Unexpected erlang compile option %s"] 5 (#$ . 156729)]) #@13 (fn OPTS) (defalias 'inferior-erlang-tuple #[257 "\300\301\302\303#\304Q\207" ["{" mapconcat inferior-erlang-format-opt ", " "}"] 6 (#$ . 157082)]) #@13 (fn OPTS) (defalias 'inferior-erlang-list #[257 "\300\301\302\303#\304Q\207" ["[" mapconcat inferior-erlang-format-opt ", " "]"] 6 (#$ . 157239)]) (defalias 'erlang-local-buffer-file-name #[0 "\300 \204\301\207\302 \203\303 \207\300 \207" [buffer-file-name nil erlang-tramp-remote-file-p erlang-tramp-get-localname] 1]) (defalias 'erlang-tramp-remote-file-p #[0 "\300\301!\205\n\301\302 !\207" [fboundp tramp-tramp-file-p buffer-file-name] 2]) (defalias 'erlang-tramp-get-localname #[0 "\301\302!\205/\302\303 !\301\304!\203$\211\242>\204\305\306\307D\"\210\3108\202-\301\311!\205-\311!\262\207" [cl-struct-tramp-file-name-tags fboundp tramp-dissect-file-name buffer-file-name tramp-file-name-localname signal wrong-type-argument tramp-file-name 6 tramp-file-name-path] 5]) #@110 Just like `next-error'. Capable of finding error messages in an inferior Erlang buffer. (fn &optional ARGP) (defalias 'inferior-erlang-next-error #[256 "\303\304\300!\203 \206\304\301!\205 \305!\2036r\211q\210\n\306=\205%\307\211)\2036\310\311\"\216\312\262\313!\210)\206=\313!\207" [next-error-last-buffer compilation-last-buffer major-mode nil boundp bufferp erlang-shell-mode compilation-mode make-closure #[0 "r\300q\210\302\211)\207" [V0 major-mode erlang-shell-mode] 2] t next-error] 6 (#$ . 158039) "P"]) #@125 Make the inferior Erlang change directory. The default is to go to the directory of the current buffer. (fn &optional DIR) (defalias 'inferior-erlang-change-directory #[256 "\211\204\n\300\301 !\262\302 \204\303\304!\210\305 \210\306 \210\307 \210\310\311\312\"\313\"\207" [file-name-directory erlang-local-buffer-file-name inferior-erlang-running-p error "No inferior Erlang is running" inferior-erlang-display-buffer inferior-erlang-send-empty-cmd-unless-already-at-prompt inferior-erlang-wait-prompt inferior-erlang-send-command format "cd('%s')." nil] 5 (#$ . 158577) nil]) #@429 Align arrows ("->") in function clauses from START to END. When called interactively, aligns arrows after function clauses inside the region. With a prefix argument, aligns all arrows, not just those in function clauses. Example: sum(L) -> sum(L, 0). sum([H|T], Sum) -> sum(T, Sum + H); sum([], Sum) -> Sum. becomes: sum(L) -> sum(L, 0). sum([H|T], Sum) -> sum(T, Sum + H); sum([], Sum) -> Sum. (fn START END) (defalias 'erlang-align-arrows #[514 "\212\203 \302\202\n\303\203\304\202 T\305\306Cb\210\307 b\210\310\311#\203?\224b\210\312 \210`B\262\211\242\313 ]\240\210\202 \211\305\211\223\210\314\315\316\"\"\266\205)\207" [current-prefix-arg erlang-atom-regexp-matches "^.*\\(\\)->" "^\\('\\(?:[^\\']\\|\\(?:\\\\.\\)\\)*'\\|\\_<[[:lower:]]\\(?:\\sw\\|\\s_\\)*\\_>\\).*\\(\\)->" 1 nil 0 point-marker re-search-forward t just-one-space erlang-column-number mapc make-closure #[257 "\211b\210\300\242\301 Z\211\302V\205\303\304\"\207" [V0 erlang-column-number 0 insert-char 32] 5 "\n\n(fn ARROW-POS)"]] 11 (#$ . 159168) "r"]) #@115 Return the column number of the current position in the buffer. Tab characters are counted by their visual width. (defalias 'erlang-column-number #[0 "\300\301 `{!\207" [string-width line-beginning-position] 3 (#$ . 160243)]) #@46 `add-log-current-defun-function' for Erlang. (defalias 'erlang-current-defun #[0 "\212\300 \210\301\302!\205 \303\304!)\207" [erlang-beginning-of-function looking-at "[a-z0-9_]+" match-string 0] 2 (#$ . 160475)]) (defconst erlang-unload-hook (list #[0 "\300\301!\210\300\302!\207" [ad-unadvise Man-notify-when-ready set-visited-file-name] 2])) (byte-code "\300\301!\210\302\303!\207" [provide erlang run-hooks erlang-load-hook] 2)