;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'idlwave) (defvar idlwave-current-tags-var nil) (defvar idlwave-current-tags-buffer nil) (defvar idlwave-current-tags-completion-pos nil) (defvar idlwave-current-struct-tags nil) (defvar idlwave-sint-structtags nil) (byte-code "\300\301!\210\302\303\304\"\210\305\306\307\"\207" [idlwave-new-sintern-type structtag add-to-list idlwave-complete-special idlwave-complete-structure-tag add-hook idlwave-update-rinfo-hook idlwave-structtag-reset] 3) #@348 Complete a structure tag. This works by looking in the current file for a structure assignment to a variable with the same name and takes the tags from there. Quite useful for big structures like the state variables of a widget application. In the idlwave shell, the current content of the variable is used to get an up-to-date completion list. (defalias 'idlwave-complete-structure-tag #[nil "`\306\307\212\310\306x\210``\nW\2050`Sf\311\232?\2050\312\313!\2050\n\314\225Y\2050\315\316!\227\317\230?)\205h\315\316!\227\211\f\206?\320\230\203Pp =\203P \232\204T\321 !\210 \322C\323\324\211\306\325\326&\210)\307+\207" [case-fold-search start pos var idlwave-current-tags-var idlwave-current-tags-buffer nil t "a-zA-Z0-9._$" 33 looking-at "\\([a-zA-Z][.a-zA-Z0-9_]*\\)\\." 0 match-string 1 "self" "@" idlwave-prepare-structure-tag-completion idlwave-complete-structure-tag-help idlwave-complete-in-buffer structtag "Select a structure tag" "structure tag" idlwave-current-tags-completion-pos idlwave-completion-help-info idlwave-current-struct-tags] 8 (#$ . 864) nil]) #@66 Force an update of the current structure tag list upon next use. (defalias 'idlwave-structtag-reset #[nil "\301\211\207" [idlwave-current-tags-buffer nil] 2 (#$ . 1962)]) #@61 The location of the structure definition, for help display. (defvar idlwave-structtag-struct-location nil (#$ . 2140)) #@59 Find and parse the tag list for structure tag completion. (defalias 'idlwave-prepare-structure-tag-completion #[(var) "\306\307!\203%\310\311!\210\312!\210\313p`\314\315 \"\211?\205^\316\317\"\207\3202V\212db\210\321\313\322#\205T\323 \211\203P\313p`\314\324\"\325\320\326\"\210)\202-)0?\205^\316\317\"\207" [var idlwave-sint-structtags idlwave-current-tags-buffer idlwave-current-tags-var idlwave-structtag-struct-location idlwave-current-struct-tags derived-mode-p idlwave-shell-mode message "preparing shell tags" idlwave-complete-structure-tag-query-shell nil mapcar #[(x) "\301\302\"C\207" [x idlwave-sintern-structtag set] 3] error "Cannot complete structure tags of variable %s" exit idlwave-find-structure-definition all idlwave-struct-tags #[(x) "\301\302\"C\207" [x idlwave-sintern-structtag set] 3] throw t tags] 5 (#$ . 2265)]) #@76 Ask the shell for the tags of the structure in variable or expression VAR. (defalias 'idlwave-complete-structure-tag-query-shell #[(var) "\301\302\303\211#\304\305\306$\207" [var idlwave-shell-send-command format "if size(%s,/TYPE) eq 8 then print,tag_names(%s)" idlwave-complete-structure-tag-get-tags-from-help hide wait] 5 (#$ . 3140)]) #@76 Filter structure tag name output, result to `idlwave-current-struct-tags'. (defalias 'idlwave-complete-structure-tag-get-tags-from-help #[nil "\303\304\305Q \"\205\306\307\310 \"!\211\207" [idlwave-shell-prompt-pattern idlwave-shell-command-output idlwave-current-struct-tags string-match "tag_names(.*) *\n\\(\\(.*[ \n]?\\)*\\)\\(" "\\)" split-string match-string 1] 4 (#$ . 3487)]) (defalias 'idlwave-complete-structure-tag-help #[(mode word) "\306\267\202 \307\310 !\232?\207\n\f\211\207\311\312!\207" [mode idlwave-current-tags-buffer word idlw-help-kwd idlwave-structtag-struct-location idlwave-help-do-struct-tag #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (test 6 set 14)) get-buffer idlwave-shell-buffer error "This should not happen"] 3]) (provide 'idlw-complete-structtag)