Current File : //kunden/usr/share/emacs/27.2/lisp/progmodes/idlw-complete-structtag.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; 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 (#$ . 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)