Edit file File name : idlw-complete-structtag.elc Content :;ELC ;;; Compiled ;;; in Emacs version 26.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (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\203P p =\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 (#$ . 1964)]) #@61 The location of the structure definition, for help display. (defvar idlwave-structtag-struct-location nil (#$ . 2142)) #@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 (#$ . 2267)]) #@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 (#$ . 3142)]) #@76 Filter structure tag name output, result to `idlwave-current-struct-tags'. (defalias 'idlwave-complete-structure-tag-get-tags-from-help #[nil "\303\304\305\306\307\260 \"\205 \310\311\312 \"!\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] 6 (#$ . 3489)]) (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) Save