;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (require 'scheme) #@37 Hooks for the `tuareg-jbuild-mode'. (defvar tuareg-jbuild-mode-hook nil (#$ . 105)) #@44 If t, check your jbuild file with flymake. (defvar tuareg-jbuild-flymake nil (#$ . 195)) #@53 Directory where to duplicate the files for flymake. (defvar tuareg-jbuild-temporary-file-directory (expand-file-name "Tuareg-jbuild" temporary-file-directory) (#$ . 290)) #@41 Script to use to check the jbuild file. (defvar tuareg-jbuild-program (expand-file-name "jbuild-lint" tuareg-jbuild-temporary-file-directory) (#$ . 467)) (byte-code "\300\301\302\303\304\305%\210\306\307\310\311#\207" [custom-declare-group tuareg-jbuild nil "Support for Jbuilder files." :group languages custom-declare-face tuareg-jbuild-error-face ((t (:foreground "yellow" :background "red" :bold t))) "Face for errors (e.g. obsolete constructs)."] 6) #@45 Face for errors (e.g. obsolete constructs). (defvar tuareg-jbuild-error-face 'tuareg-jbuild-error-face (#$ . 928)) #@27 Keywords in jbuild files. (defconst tuareg-jbuild-keywords-regex "\\(?:alias\\|copy_files#?\\|documentation\\|executables?\\|in\\(?:clude\\|stall\\)\\|jbuild_version\\|library\\|menhir\\|ocaml\\(?:lex\\|yacc\\)\\|rule\\)\\(?:\\_>\\|[[:space:]]\\)" (#$ . 1049)) #@38 Field names allowed in jbuild files. (defconst tuareg-jbuild-fields-regex "\\_<\\(action\\|bin\\|c\\(?:\\(?:_\\(?:flag\\|library_flag\\|name\\)\\|xx_\\(?:flag\\|name\\)\\)s\\)\\|d\\(?:eps\\|oc\\)\\|etc\\|f\\(?:\\(?:ile\\|lag\\)s\\)\\|in\\(?:line_tests\\(?:\\.backend\\)?\\|stall_c_headers\\)\\|js_of_ocaml\\|kind\\|li\\(?:b\\(?:exec\\|rar\\(?:\\(?:ie\\|y_flag\\)s\\)\\)?\\|nk_flags\\)\\|m\\(?:an\\|erge_into\\|isc\\|ld_files\\|od\\(?:es?\\|ules\\(?:_without_implementation\\)?\\)\\)\\|n\\(?:ames?\\|o_dynlink\\)\\|o\\(?:caml\\(?:\\(?:c\\|opt\\)_flags\\)\\|ptional\\)\\|p\\(?:ackage\\|px_runtime_libraries\\|reprocess\\(?:or_deps\\)?\\|ublic_names?\\)\\|s\\(?:bin\\|e\\(?:ction\\|lf_build_stubs_archive\\)\\|hare\\(?:_root\\)?\\|\\(?:tublib\\|ynopsi\\)s\\)\\|t\\(?:argets\\|oplevel\\)\\|virtual_deps\\|wrapped\\)\\_>" (#$ . 1316)) #@30 Builtin sub-fields in jbuild (defvar tuareg-jbuild-builtin-regex "\\(alias\\(?:_rec\\)?\\|ba\\(?:ckend\\|sh\\)\\|c\\(?:at\\|hdir\\|opy#?\\)\\|diff\\??\\|e\\(?:cho\\|xtends\\)\\|f\\(?:ile\\(?:s_recursively_in\\)?\\|lags\\)\\|g\\(?:enerate_runner\\|lob_files\\)\\|ignore-\\(?:outputs\\|std\\(?:err\\|out\\)\\)\\|p\\(?:ackage\\|rogn\\)\\|run\\(?:ner_libraries\\)?\\|s\\(?:etenv\\|ystem\\)\\|universe\\|w\\(?:ith-\\(?:\\(?:outputs\\|std\\(?:err\\|out\\)\\)-to\\)\\|rite-file\\)\\)\\(?:\\_>\\|[[:space:]]\\)" (#$ . 2152)) #@36 Optional prefix to variable names. (defvar tuareg-jbuild-var-kind-regex "\\<\\(bin\\|exe\\|lib\\(?:-available\\|exec\\)?\\|path\\(?:-no-dep\\)?\\|read\\(?:-\\(?:\\(?:line\\|string\\)s\\)\\)?\\|version\\)\\>" (#$ . 2675)) (defvar tuareg-jbuild-var-regex (concat "\\(!?\\)\\(\\(?:" tuareg-jbuild-var-kind-regex ":\\)?\\)\\([a-zA-Z][a-zA-Z0-9_.-]*\\|[<@^]\\)\\(\\(?::[a-zA-Z][a-zA-Z0-9_.-]*\\)?\\)")) (defalias 'tuareg-jbuild--field-vals '(macro . #[(field &rest vals) "\302\303\304\305\306 \307\"\257\310BB\207" [field vals list concat "(" "[[:space:]]+" regexp-opt t (1 font-lock-constant-face)] 8])) (defvar tuareg-jbuild-font-lock-keywords (byte-code "\304B\305 P\306B\307\310\311\312\305\nP\313B\314\315\316B\317 \320Q\321B\322 \323Q\324B\325BBBBBBBBBBB\207" [tuareg-jbuild-keywords-regex tuareg-jbuild-fields-regex tuareg-jbuild-builtin-regex tuareg-jbuild-var-regex font-lock-keyword-face "(" (1 font-lock-function-name-face) ("\\(true\\|false\\)" 1 font-lock-constant-face) ("(\\(select\\)[[:space:]]+[^[:space:]]+[[:space:]]+\\(from\\)\\>" (1 font-lock-constant-face) (2 font-lock-constant-face)) ("(kind[[:space:]]+\\(normal\\|ppx_\\(?:\\(?:deriv\\|rewrit\\)er\\)\\)" 1 font-lock-constant-face) ("(mode[[:space:]]+\\(fallback\\|promote\\(?:-until-clean\\)?\\|standard\\)" 1 font-lock-constant-face) (1 font-lock-builtin-face) ("(preprocess[[:space:]]+(\\(pps\\)" 1 font-lock-builtin-face) "(\\(fallback\\)" (1 tuareg-jbuild-error-face) "${" "}" ((1 tuareg-jbuild-error-face) (2 font-lock-builtin-face) (4 font-lock-variable-name-face) (5 font-lock-variable-name-face)) "$(" ")" ((1 tuareg-jbuild-error-face) (2 font-lock-builtin-face) (4 font-lock-variable-name-face) (5 font-lock-variable-name-face)) (("\\(:[a-zA-Z]+\\)\\b" 1 font-lock-builtin-face))] 13)) #@29 Tuareg-jbuild syntax table. (defvar tuareg-jbuild-mode-syntax-table (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210)\207" [table make-syntax-table modify-syntax-entry 59 "< b" 10 "> b" 40 "()" 41 ")(" 123 "(}" 125 "){" 91 "(]" 93 ")["] 4) (#$ . 4450)) (require 'smie) (defvar tuareg-jbuild-smie-grammar (byte-code "\300\301!\210\302\207" [fboundp smie-prec2->grammar nil] 2)) (defalias 'tuareg-jbuild-smie-rules #[(kind token) "\305=\203\306\207\307=\203. \310\232\203.\212\311 A@b\210\n\312\313!)\262\203+\314\202,\315)\207\316=\203u\317\320!\203s\212\311 A@b\210\n\312\313!)\262\203Q\315\202q\f\312\313!)\262\203c\321\322!\202q\323 \203n\324iB\202q\324iB)\207\325\207\315\207" [kind token tuareg-jbuild-keywords-regex inhibit-changing-match-data tuareg-jbuild-fields-regex :close-all (column . 0) :after ")" smie-indent--parent t looking-at (column . 0) 1 :before smie-rule-parent-p "(" smie-rule-parent 0 smie-rule-sibling-p column (column . 0)] 3]) (defalias 'verbose-tuareg-jbuild-smie-rules #[(kind token) "\304 \"\305\306 \3071\310 0\202\210\311\3121 0\202 \210\311\3131*\314 0\202,\210\311\n&\210\n)\207" [kind token value smie--parent tuareg-jbuild-smie-rules message "%s '%s'; sibling-p:%s parent:%s hanging:%s = %s" (error) smie-rule-sibling-p nil (error) (error) smie-rule-hanging-p] 8]) (require 'flymake) #@132 Create the lint script if it does not exist. This is nedded as long as See https://github.com/ocaml/dune/issues/241 is not fixed. (defalias 'tuareg-jbuild-create-lint-script #[nil "\303!?\205\304!\305\306\n\307\"\210\310 \311#\210\312\313\"*\207" [tuareg-jbuild-program pgm dir file-exists-p file-name-directory "#!/usr/bin/env ocaml\n;;\n#load \"unix.cma\";;\n#load \"str.cma\";;\n\nopen Printf\n\nlet filename = Sys.argv.(1)\nlet root = try Some(Sys.argv.(2)) with _ -> None\n\nlet read_all fh =\n let buf = Buffer.create 1024 in\n let b = Bytes.create 1024 in\n let len = ref 0 in\n while len := input fh b 0 1024; !len > 0 do\n Buffer.add_subbytes buf b 0 !len\n done;\n Buffer.contents buf\n\nlet errors =\n let root = match root with\n | None | Some \"\" -> \"\"\n | Some r -> \"--root=\" ^ Filename.quote r in\n let cmd = sprintf \"jbuilder external-lib-deps %s %s\" root\n (Filename.quote (Filename.basename filename)) in\n let env = Unix.environment() in\n let (_,_,fh) as p = Unix.open_process_full cmd env in\n let out = read_all fh in\n match Unix.close_process_full p with\n | Unix.WEXITED (0|1) ->\n (* jbuilder will normally exit with 1 as it will not be able to\n perform the requested action. *)\n out\n | Unix.WEXITED 127 -> printf \"jbuilder not found in path.\\n\"; exit 1\n | Unix.WEXITED n -> printf \"jbuilder exited with status %d.\\n\" n; exit 1\n | Unix.WSIGNALED n -> printf \"jbuilder was killed by signal %d.\\n\" n;\n exit 1\n | Unix.WSTOPPED n -> printf \"jbuilder was stopped by signal %d\\n.\" n;\n exit 1\n\n\nlet () =\n let re = \"\\\\(:?\\\\)[\\r\\n]+\\\\([a-zA-Z]+\\\\)\" in\n let errors = Str.global_substitute (Str.regexp re)\n (fun s -> let colon = Str.matched_group 1 s = \":\" in\n let f = Str.matched_group 2 s in\n if f = \"File\" then \"\\n File\"\n else if colon then \": \" ^ f\n else \", \" ^ f)\n errors in\n print_string errors" make-directory t append-to-file nil set-file-modes 511] 4 (#$ . 5931)]) #@84 Full path of the copy of the filename in `tuareg-jbuild-temporary-file-directory'. (defalias 'tuareg-jbuild--temp-name #[(absolute-path) "\303\304\"\305\306 T\307O\n\"!)\207" [absolute-path slash-pos tuareg-jbuild-temporary-file-directory string-match "/" file-truename expand-file-name nil] 5 (#$ . 8135)]) (defalias 'tuareg-jbuild-flymake-create-temp #[(filename _prefix) ";\204 \301\302!\210\303!\207" [filename error "Invalid filename" tuareg-jbuild--temp-name] 2]) #@45 Return all opam files in the directory DIR. (defalias 'tuareg-jbuild--opam-files #[(dir) "\304\305 \306\307#\304\211\203# @\211A@\204\n@B A\211\204*)\207" [files dir f --dolist-tail-- nil directory-files-and-attributes t ".*\\.opam\\'"] 5 (#$ . 8617)]) #@66 Return the root and copy the necessary context files for jbuild. (defalias 'tuareg-jbuild--root #[(filename) "\304\305!\306\"\211\2033\307 !\310\311 !\312\"\210\306 !\313\211\2032 @\314\n\311\n!\312#\210 A\211\204 * )\207" [filename dir f --dolist-tail-- locate-dominating-file file-name-directory tuareg-jbuild--opam-files expand-file-name make-directory tuareg-jbuild--temp-name t nil copy-file] 5 (#$ . 8889)]) (byte-code "\300\301\302\303!\203\f\303\202 \304\"\210\305\306\307\310!\203\310\202\311\"\207" [defvaralias tuareg-jbuild--temp-source-file-name boundp flymake-proc--temp-source-file-name flymake-temp-source-file-name defalias tuareg-jbuild--safe-delete-file functionp flymake-proc--safe-delete-file flymake-safe-delete-file] 4) #@45 Delete all opam files in the directory DIR. (defalias 'tuareg-jbuild--delete-opam-files #[(dir) "\303!\304\211\205\n@\305 !\210\nA\211\204\n\304*\207" [dir f --dolist-tail-- tuareg-jbuild--opam-files nil tuareg-jbuild--safe-delete-file] 3 (#$ . 9654)]) #@98 Attempt to delete temp dir created by `tuareg-jbuild-flymake-create-temp', do not fail on error. (defalias 'tuareg-jbuild-flymake-cleanup #[nil "\304!\305 !\306P\307!\210\3101\311\312\313 \"\314\"0\210\202\210 \n\230?\205L G\315V\205L\3161E\317 !\210\311 !\210\304\305 !!\2110\210\202\210\320\211\202 *\207" [tuareg-jbuild--temp-source-file-name tuareg-jbuild-temporary-file-directory temp-dir dir file-name-directory directory-file-name "/" tuareg-jbuild--safe-delete-file (error) delete-directory expand-file-name "_build" t 0 (error) tuareg-jbuild--delete-opam-files ""] 5 (#$ . 9921)]) (byte-code "\300\301\302\303!\203\f\303\202 \304\"\207" [defalias tuareg-jbuild--flymake-proc-init-create-temp-buffer-copy functionp flymake-proc-init-create-temp-buffer-copy flymake-init-create-temp-buffer-copy] 4) (defalias 'tuareg-jbuild-flymake-init #[nil "\304 \210\305\306!\307!\206 \310 \n *DD\207" [buffer-file-name root fname tuareg-jbuild-program tuareg-jbuild-create-lint-script tuareg-jbuild--flymake-proc-init-create-temp-buffer-copy tuareg-jbuild-flymake-create-temp tuareg-jbuild--root ""] 3]) (byte-code "\300\301\302\303!\203\f\303\202 \304\"\207" [defvaralias tuareg-jbuild--flymake-proc-allowed-file-name-masks boundp flymake-proc-allowed-file-name-masks flymake-allowed-file-name-masks] 4) #@77 Flymake entry for jbuild files. See `flymake-proc-allowed-file-name-masks'. (defvar tuareg-jbuild--allowed-file-name-masks '("\\(?:\\`\\|/\\)jbuild\\'" tuareg-jbuild-flymake-init tuareg-jbuild-flymake-cleanup) (#$ . 11251)) (byte-code "\300\301\302\303!\203\f\303\202 \304\"\207" [defvaralias tuareg-jbuild--flymake-proc-err-line-patterns boundp flymake-proc-err-line-patterns flymake-err-line-patterns] 4) #@56 Value of `flymake-err-line-patterns' for jbuild files. (defvar tuareg-jbuild--err-line-patterns '(("File \"[^\"]*\\(jbuild\\)\", line \\([0-9]+\\), characters \\([0-9]+\\)-\\([0-9]+\\): +\\([^\n]*\\)$" 1 2 3 5)) (#$ . 11666)) (put 'tuareg-jbuild-insert-version-form 'no-self-insert t) #@531 Insert the jbuild version. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-version-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(jbuild_version 1" _ ")" > 10) t str arg] 5 (#$ . 11958) "*P\nP"]) (put 'tuareg-jbuild-insert-library-form 'no-self-insert t) #@529 Insert a library stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-library-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(library" > n "((name " _ ")" > n "(public_name " _ ")" > n "(libraries (" _ "))" > n "(synopsis \"" _ "\")))" > 10) t str arg] 5 (#$ . 13044) "*P\nP"]) (put 'tuareg-jbuild-insert-executable-form 'no-self-insert t) #@533 Insert an executable stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-executable-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(executable" > n "((name " _ ")" > n "(public_name " _ ")" > n "(modules (" _ "))" > n "(libraries (" _ "))))" > 10) t str arg] 5 (#$ . 14225) "*P\nP"]) (put 'tuareg-jbuild-insert-executables-form 'no-self-insert t) #@534 Insert an executables stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-executables-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(executables" > n "((names (" _ "))" > n "(public_names (" _ "))" > n "(libraries (" _ "))))" > 10) t str arg] 5 (#$ . 15417) "*P\nP"]) (put 'tuareg-jbuild-insert-rule-form 'no-self-insert t) #@526 Insert a rule stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-rule-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(rule" > n "((targets (" _ "))" > n "(deps (" _ "))" > n "(action (" _ "))))" > 10) t str arg] 5 (#$ . 16586) "*P\nP"]) (put 'tuareg-jbuild-insert-ocamllex-form 'no-self-insert t) #@531 Insert an ocamllex stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-ocamllex-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(ocamllex (" _ "))" > 10) t str arg] 5 (#$ . 17722) "*P\nP"]) (put 'tuareg-jbuild-insert-ocamlyacc-form 'no-self-insert t) #@532 Insert an ocamlyacc stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-ocamlyacc-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(ocamlyacc (" _ "))" > 10) t str arg] 5 (#$ . 18806) "*P\nP"]) (put 'tuareg-jbuild-insert-menhir-form 'no-self-insert t) #@528 Insert a menhir stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-menhir-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(menhir" > n "((modules (" _ "))))" > 10) t str arg] 5 (#$ . 19890) "*P\nP"]) (put 'tuareg-jbuild-insert-alias-form 'no-self-insert t) #@528 Insert an alias stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-alias-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(alias" > n "((name " _ ")" > n "(deps (" _ "))))" > 10) t str arg] 5 (#$ . 20981) "*P\nP"]) (put 'tuareg-jbuild-insert-install-form 'no-self-insert t) #@530 Insert an install stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-install-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(install" > n "((section " _ ")" > n "(files (" _ "))))" > 10) t str arg] 5 (#$ . 22088) "*P\nP"]) (put 'tuareg-jbuild-insert-copyfiles-form 'no-self-insert t) #@532 Insert a copy_files stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-copyfiles-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(copy_files " _ ")" > 10) t str arg] 5 (#$ . 23207) "*P\nP"]) (put 'tuareg-jbuild-insert-documentation-form 'no-self-insert t) #@535 Insert a documentation stanza. This is a skeleton command (see `skeleton-insert'). Normally the skeleton text is inserted at point, with nothing "inside". If there is a highlighted region, the skeleton text is wrapped around the region text. A prefix argument ARG says to wrap the skeleton around the next ARG words. A prefix argument of -1 says to wrap around region, even if not highlighted. A prefix argument of zero says to wrap around zero words---that is, nothing. This is a way of overriding the use of a highlighted region. (defalias 'tuareg-jbuild-insert-documentation-form #[(&optional str arg) "\306 \307\211\307\310\216\311 !\210\312\313 #\314.\207" [most-positive-fixnum #1=#:--change-group-success-- undo-strong-limit undo-limit undo-outer-limit #2=#:--change-group-handle-- prepare-change-group nil #[nil "\203\302 !\207\303 !\207" [#1# #2# accept-change-group cancel-change-group] 2] activate-change-group skeleton-proxy-new (nil "(documentation" > n "((package" _ ")" > n "(mld_files :standard)))" > 10) t str arg] 5 (#$ . 24297) "*P\nP"]) #@36 Keymap used in Tuareg-jbuild mode. (defvar tuareg-jbuild-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210)\207" [map make-sparse-keymap define-key "" compile ".v" tuareg-jbuild-insert-version-form ".l" tuareg-jbuild-insert-library-form ".e" tuareg-jbuild-insert-executable-form ".x" tuareg-jbuild-insert-executables-form ".r" tuareg-jbuild-insert-rule-form ".p" tuareg-jbuild-insert-ocamllex-form ".y" tuareg-jbuild-insert-ocamlyacc-form ".m" tuareg-jbuild-insert-menhir-form ".a" tuareg-jbuild-insert-alias-form ".i" tuareg-jbuild-insert-install-form ".c" tuareg-jbuild-insert-copyfiles-form ".d" tuareg-jbuild-insert-documentation-form] 4) (#$ . 25376)) (defalias 'tuareg-jbuild-build-menu #[nil "\302\303!\210\304\301C\305\306$\210\307 !\207" [tuareg-jbuild-mode-map tuareg-jbuild-mode-menu (lambda (#1=#:def-tmp-var) (defvar tuareg-jbuild-mode-menu #1# #2="Tuareg-jbuild mode menu.")) nil easy-menu-do-define #2# ("Jbuild" ("Stanzas" ["version" tuareg-jbuild-insert-version-form t] ["library" tuareg-jbuild-insert-library-form t] ["executable" tuareg-jbuild-insert-executable-form t] ["executables" tuareg-jbuild-insert-executables-form t] ["rule" tuareg-jbuild-insert-rule-form t] ["ocamllex" tuareg-jbuild-insert-ocamllex-form t] ["ocamlyacc" tuareg-jbuild-insert-ocamlyacc-form t] ["menhir" tuareg-jbuild-insert-menhir-form t] ["alias" tuareg-jbuild-insert-alias-form t] ["install" tuareg-jbuild-insert-install-form t] ["copy_files" tuareg-jbuild-insert-copyfiles-form t])) easy-menu-add] 5]) (defvar tuareg-jbuild-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [tuareg-jbuild-mode-hook variable-documentation put "Hook run after entering Tuareg-jbuild mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp tuareg-jbuild-mode-map definition-name tuareg-jbuild-mode] 4) (defvar tuareg-jbuild-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" [tuareg-jbuild-mode-abbrev-table tuareg-jbuild-mode-map variable-documentation put purecopy "Keymap for `tuareg-jbuild-mode'." boundp tuareg-jbuild-mode-syntax-table definition-name tuareg-jbuild-mode (lambda (#1=#:def-tmp-var) (defvar tuareg-jbuild-mode-syntax-table #1#)) make-syntax-table "Syntax table for `tuareg-jbuild-mode'." (lambda (#1#) (defvar tuareg-jbuild-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `tuareg-jbuild-mode'." derived-mode-parent prog-mode] 5) #@238 Major mode to edit jbuild files. In addition to any hooks its parent mode `prog-mode' might have run, this mode runs the hook `tuareg-jbuild-mode-hook', as the final or penultimate step during initialization. \{tuareg-jbuild-mode-map} (defalias 'tuareg-jbuild-mode #[nil "\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\2036 \321 =\203<\322\f\323 \"\210)\324(\325\"\204V()=\204V\326(\325)C#\210\327 !\210\330\f!\210()\306\331!\210\332\306\333!\210\334\306\335!\210\336\337*\306\340!\210+ ,-B-\341.\342\"\210\306\343!\210/#0\203\2451\203\245\344\307!\210\345 \210\346\347!\210)\346\347!\207" [delay-mode-hooks major-mode mode-name tuareg-jbuild-mode-map tuareg-jbuild-mode-syntax-table parent make-local-variable t prog-mode tuareg-jbuild-mode "Tuareg-jbuild" 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 font-lock-defaults (tuareg-jbuild-font-lock-keywords) comment-start ";" comment-end "" nil require-final-newline smie-setup tuareg-jbuild-smie-rules tuareg-jbuild--flymake-proc-err-line-patterns flymake-mode tuareg-jbuild-build-menu run-mode-hooks tuareg-jbuild-mode-hook tuareg-jbuild-mode-abbrev-table local-abbrev-table indent-tabs-mode mode-require-final-newline tuareg-jbuild--allowed-file-name-masks tuareg-jbuild--flymake-proc-allowed-file-name-masks tuareg-jbuild-smie-grammar tuareg-jbuild--err-line-patterns tuareg-jbuild-flymake buffer-file-name] 6 (#$ . 28355) nil]) (byte-code "\300\301\302\"\210\303\304!\207" [add-to-list auto-mode-alist ("\\(?:\\`\\|/\\)jbuild\\(?:\\.inc\\)?\\'" . tuareg-jbuild-mode) provide tuareg-jbuild-mode] 3)