;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. #@191 Bind value according to BINDING and check for truthy-ness If the test passes then eval THEN with the BINDING varlist bound If no, eval ELSE with no binding (fn BINDING THEN &optional ELSE) (defalias 'if-let '(macro . #[770 "@@@A\300 \301BC\302\301DC\nEFE\207" [gensym let if] 13 (#$ . 88)])) #@101 Helper method for the group-by function. Should not be called directly. (fn LIST FN PREV COLL AGR) (defalias 'group-by* #[1285 "\203.@A!!=\203!\300\211B%\207\300\301B%\207B\207" [group-by* nil] 14 (#$ . 400)]) #@132 Group-by is a FUNCTION across LIST, returning a sequence It groups the objects in LIST according to the predicate FN (fn LIST FN) (defalias 'group-by #[514 "\300\301\302\"\"\303\304\211\211%\207" [sort make-closure #[514 "\300!\300!W\207" [V0] 5 "\n\n(fn X Y)"] group-by* nil] 9 (#$ . 647)]) (byte-code "\300\301!\204 \302\301\303\"\210\300\304!\204\302\304\305\"\210\306\307\310\311\312\313\314\315&\210\316\317\320\321\322DD\323\324\325\312\307&\210\316\326\320\321\327DD\330\324\325\312\307&\210\316\331\320\321\332DD\333\324\334\312\307&\207" [fboundp some defalias #[514 "\211\205@!\211\203\211\202\300A\"\262\207" [some] 6 "\n\n(fn FN LIST)"] caddr #[257 "\211AA@\207" [] 2 "\n\n(fn LIST)"] custom-declare-group j-help nil "Documentation extention for j-mode" :group applications :prefix "j-help-" custom-declare-variable j-help-local-dictionary-url funcall function #[0 "\300\207" [#1=""] 1 #1#] "Path to the local instance of the j-dictionary" :type string j-help-remote-dictionary-url #[0 "\300\207" [#2="http://www.jsoftware.com/help/dictionary"] 1 #2#] "Path to the remote instance of the j-dictionary" j-help-symbol-search-branch-limit #[0 "\300\207" [5] 1] "Distance from initial point they system can search for a valid symbol." integer] 8) #@25 (string * string) alist (defconst j-help-voc-alist '(("~" . "d220v") ("}" . "d530n") ("|" . "d230") ("#" . "d400") ("{" . "d520") ("`" . "d610") ("_" . "d030") ("^" . "d200") ("]" . "d500") ("\\" . "d430") ("\\:" . "d432") ("\\." . "d431") ("\"" . "d600n") ("[" . "d500") ("@" . "d620") ("?" . "d640") ("=" . "d000") (";" . "d330") (":" . "d310n") ("/" . "d420") ("." . "d300") ("-" . "d120") ("," . "d320") ("+" . "d100") ("*" . "d110") ("<" . "d010") (">" . "d020") ("&" . "d630n") ("%" . "d130") ("$" . "d210") ("~:" . "d222") ("~." . "d221") ("}:" . "d532") ("}." . "d531") ("|:" . "d232") ("|." . "d231") ("{:" . "d522") ("{." . "d521") ("x:" . "dxco") ("u:" . "duco") ("t:" . "dtco") ("t." . "dtdotu") ("s:" . "dsco") ("r." . "drdot") ("q:" . "dqco") ("p:" . "dpco") ("p." . "dpdot") ("o." . "dodot") ("j." . "djdot") ("i:" . "dico") ("i." . "didot") ("f." . "dfdot") ("e." . "dedot") ("d." . "dddot") ("b." . "dbdotn") ("a:" . "dadot") ("a." . "dadot") ("`:" . "d612") ("_:" . "d032") ("_." . "d031") ("^:" . "d202n") ("^." . "d201") ("\":" . "d602") ("\"." . "d601") ("[:" . "d502") ("T." . "dtcapdot") ("@." . "d621") ("?." . "d641") ("=:" . "d001") ("=." . "d001") (";:" . "d332") (";." . "d331") ("::" . "d312") (":." . "d311") ("/:" . "d422") ("/." . "d421") (".:" . "d301") (".." . "d301") ("-:" . "d122") ("-." . "d121") (",:" . "d322") (",." . "d321") ("+:" . "d102") ("+." . "d101") ("*:" . "d112") ("*." . "d111") ("<:" . "d012") ("<." . "d011") (">:" . "d022") (">." . "d021") ("&:" . "d632") ("&." . "d631") ("&.:" . "d631c") ("%:" . "d132") ("%." . "d131") ("$:" . "d212") ("$." . "d211") ("#:" . "d402") ("#." . "d401") ("S:" . "dscapco") ("M." . "dmcapdot") ("L:" . "dlcapco") ("L." . "dlcapdot") ("I." . "dicapdot") ("H." . "dhcapdot") ("E." . "decapdot") ("D:" . "ddcapco") ("D." . "ddcapdot") ("C." . "dccapdot") ("A." . "dacapdot") ("@:" . "d622") ("!" . "d410") ("!." . "d411") ("!:" . "d412") ("{::" . "d523") ("p.." . "dpdotdot") ("_9:" . "dconsf") ("&.:" . "d631") ("NB." . "dnb")) (#$ . 1933)) #@47 (int * string * (string * string) alist) list (defconst j-help-dictionary-data-block (byte-code "\301\302\303\304\305\306\"\"\"\207" [j-help-voc-alist mapcar #[257 "\211@@G\300\301\302\"!E\207" [regexp-opt mapcar car] 6 "\n\n(fn L)"] delq nil group-by #[257 "\211@G\207" [] 2 "\n\n(fn X)"]] 7) (#$ . 3964)) #@32 Return best defined dictionary (defalias 'j-help-valid-dictionary #[0 "\302\303\304\304\230\204 \202 \304\230?\205 #\207" [j-help-local-dictionary-url j-help-remote-dictionary-url replace-regexp-in-string "/$" ""] 5 (#$ . 4280)]) #@19 (fn ALIST-DATA) (defalias 'j-help-symbol-pair-to-doc-url #[257 "\300 \203\f\211\301\230\203\302\303\304\"\207\305@\210A\306\307\310$\207" [j-help-valid-dictionary "" error "%s" "No dictionary found. Please specify a dictionary." nil format "%s/%s.%s" "htm"] 9 (#$ . 4523)]) #@52 Convert J-SYMBOL into localtion URL (fn J-SYMBOL) (defalias 'j-help-symbol-to-doc-url #[257 "\301\302\"!\207" [j-help-voc-alist j-help-symbol-pair-to-doc-url assoc] 5 (#$ . 4813)]) #@127 Internal function to determine j symbols. Should not be called directly string * int -> (string * string) list (fn S POINT) (defalias 'j-help-determine-symbol #[514 "\211\301W\206\nGW?\205\302\303\304#\"\207" [j-help-dictionary-data-block 0 some make-closure #[257 "\211@\211\301\\\300GX\205/\302A@\300\301\211\\O\"\205/\303 \300\301@\\\301A@\\O\304AA@\"\266\202\207" [V0 V1 string-match match-data assoc] 8 "\n\n(fn X)"]] 7 (#$ . 5004)]) #@43 int -> (string * string) list (fn POINT) (defalias 'j-help-determine-symbol-at-point #[257 "\212\211b\210\300 \301 \302\"\303Z\"\266\203)\207" [point-at-bol point-at-eol buffer-substring-no-properties j-help-determine-symbol] 8 (#$ . 5467)]) #@58 (fn STRING CURRENT-INDEX TARGET-INDEX RESOLVED-SYMBOL) (defalias 'j-help-branch-determine-symbol-at-point* #[1028 "V\203\207\300\"\301@\206\302G\\$\207" [j-help-determine-symbol j-help-branch-determine-symbol-at-point* " "] 10 (#$ . 5721)]) #@14 (fn POINT) (defalias 'j-help-branch-determine-symbol-at-point #[257 "\212\211b\210\301\302\303 \304 \"Z\303 ]\303 Z\303 Z\305$)\207" [j-help-symbol-search-branch-limit j-help-branch-determine-symbol-at-point* buffer-substring-no-properties point-at-bol point-at-eol nil] 6 (#$ . 5983)]) #@42 Lookup symbol in dictionary (fn SYMBOL) (defalias 'j-help-lookup-symbol #[257 "\300!\301\302\"\210\303!\207" [j-help-symbol-to-doc-url message "Loading %s ..." browse-url] 5 (#$ . 6281) "sJ Symbol: "]) #@84 Determine the symbol nearest to POINT and look it up in the dictionary (fn POINT) (defalias 'j-help-lookup-symbol-at-point #[257 "\300!\211\203\f\301@!\207\302\303\"\207" [j-help-branch-determine-symbol-at-point j-help-lookup-symbol error "No symbol could be determined for point %d"] 5 (#$ . 6493) "d"]) (provide 'j-help)