;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\207" [require cl-macs matlab matlab-shell] 2) #@70 Return a list that is a subset of LST where all elements are unique. (defalias 'matlab-uniquify-list #[(lst) "\302\303!\203\303\304\305\306\307%\207\310\203,@\203%@ \235\204%@ BA\211\204 \237)\207" [lst nlst fboundp cl-remove-duplicates :test string= :from-end t nil] 7 (#$ . 181)]) #@385 *How the `matlab-complete-symbol' interfaces with the user. Valid values are: 'increment - which means that new strings are tried with each successive call until all methods are exhausted. (Similar to `hippie-expand'.) 'complete - Which means that if there is no single completion, then all possibilities are displayed in a completion buffer. (custom-declare-variable 'matlab-completion-technique ''complete '(#$ . -487) :group 'matlab :type '(radio (const :tag "Incremental completion (hippie-expand)." increment) (const :tag "Show completion buffer." complete))) #@47 Keywords that appear on a line by themselves. (defvar matlab-keywords-solo '("break" "case" "else" "elseif" "end" "for" "parfor" "function" "if" "tic" "toc" "otherwise" "profile" "switch" "while" "try" "catch" "spmd") (#$ . 1099)) #@89 List of MATLAB keywords that have return arguments. This list still needs lots of help. (defvar matlab-keywords-return '("acos" "acosh" "acot" "acoth" "acsch" "asech" "asin" "asinh" "atan" "atan2" "atanh" "cos" "cosh" "coth" "csc" "csch" "exp" "log" "log10" "log2" "sec" "sech" "sin" "sinh" "tanh" "abs" "sign" "sqrt") (#$ . 1336)) #@66 List of keywords that are typically used as boolean expressions. (defvar matlab-keywords-boolean '("all" "any" "exist" "isempty" "isequal" "ishold" "isfinite" "isglobal" "isinf" "isletter" "islogical" "isnan" "isprime" "isreal" "isspace" "logical" "isa") (#$ . 1674)) #@49 List of properties belonging to all HG objects. (defvar matlab-core-properties '("ButtonDownFcn" "Children" "Clipping" "CreateFcn" "DeleteFcn" "BusyAction" "HandleVisibility" "HitTest" "Interruptible" "Parent" "Selected" "SelectionHighlight" "Tag" "Type" "UIContextMenu" "UserData" "Visible") (#$ . 1948)) #@52 List of property lists on a per object type basis. (defvar matlab-property-lists '(("root" "CallbackObject" "Language" "CurrentFigure" "Diary" "DiaryFile" "Echo" "ErrorMessage" "Format" "FormatSpacing" "PointerLocation" "MonitorPositions" "PointerWindow" "Profile" "ProfileFile" "ProfileCount" "ProfileInterval" "RecursionLimit" "ScreenDepth" "ScreenSize" "ShowHiddenHandles" "TerminalHideGraphCommand" "TerminalOneWindow" "TerminalDimensions" "TerminalProtocol" "TerminalShowGraphCommand" "Units" "AutomaticFileUpdates") ("axes" "AmbientLightColor" "Box" "CameraPosition" "CameraPositionMode" "CameraTarget" "CameraTargetMode" "CameraUpVector" "CameraUpVectorMode" "CameraViewAngle" "CameraViewAngleMode" "CLim" "CLimMode" "Color" "CurrentPoint" "ColorOrder" "DataAspectRatio" "DataAspectRatioMode" "DrawMode" "FontAngle" "FontName" "FontSize" "FontUnits" "FontWeight" "GridLineStyle" "Layer" "LineStyleOrder" "LineWidth" "NextPlot" "PlotBoxAspectRatio" "PlotBoxAspectRatioMode" "Projection" "Position" "TickLength" "TickDir" "TickDirMode" "Title" "Units" "View" "XColor" "XDir" "XGrid" "XLabel" "XAxisLocation" "XLim" "XLimMode" "XScale" "XTick" "XTickLabel" "XTickLabelMode" "XTickMode" "YColor" "YDir" "YGrid" "YLabel" "YAxisLocation" "YLim" "YLimMode" "YScale" "YTick" "YTickLabel" "YTickLabelMode" "YTickMode" "ZColor" "ZDir" "ZGrid" "ZLabel" "ZLim" "ZLimMode" "ZScale" "ZTick" "ZTickLabel" "ZTickLabelMode" "ZTickMode") ("figure" "BackingStore" "CloseRequestFcn" "Color" "Colormap" "CurrentAxes" "CurrentCharacter" "CurrentObject" "CurrentPoint" "Dithermap" "DithermapMode" "FixedColors" "IntegerHandle" "InvertHardcopy" "KeyPressFcn" "MenuBar" "MinColormap" "Name" "NextPlot" "NumberTitle" "PaperUnits" "PaperOrientation" "PaperPosition" "PaperPositionMode" "PaperSize" "PaperType" "Pointer" "PointerShapeCData" "PointerShapeHotSpot" "Position" "Renderer" "RendererMode" "Resize" "ResizeFcn" "SelectionType" "ShareColors" "Units" "WindowButtonDownFcn" "WindowButtonMotionFcn" "WindowButtonUpFcn" "WindowStyle") ("image" "CData" "CDataMapping" "EraseMode" "XData" "YData") ("light" "Position" "Color" "Style") ("line" "Color" "EraseMode" "LineStyle" "LineWidth" "Marker" "LineSmoothing" "MarkerSize" "MarkerEdgeColor" "MarkerFaceColor" "XData" "YData" "ZData") ("patch" "CData" "CDataMapping" "FaceVertexCData" "EdgeColor" "EraseMode" "FaceColor" "Faces" "LineStyle" "LineWidth" "Marker" "LineSmoothing" "MarkerEdgeColor" "MarkerFaceColor" "MarkerSize" "Vertices" "XData" "YData" "ZData" "FaceLighting" "EdgeLighting" "BackFaceLighting" "AmbientStrength" "DiffuseStrength" "SpecularStrength" "SpecularExponent" "SpecularColorReflectance" "VertexNormals" "NormalMode") ("surface" "CData" "CDataMapping" "EdgeColor" "EraseMode" "FaceColor" "LineStyle" "LineWidth" "Marker" "MarkerEdgeColor" "LineSmoothing" "MarkerFaceColor" "MarkerSize" "MeshStyle" "XData" "YData" "ZData" "FaceLighting" "EdgeLighting" "BackFaceLighting" "AmbientStrength" "DiffuseStrength" "SpecularStrength" "SpecularExponent" "SpecularColorReflectance" "VertexNormals" "NormalMode") ("text\\|title\\|xlabel\\|ylabel\\|zlabel" "Color" "EraseMode" "Editing" "Extent" "FontAngle" "FontName" "FontSize" "FontUnits" "FontWeight" "HorizontalAlignment" "BackgroundColor" "EdgeColor" "Margin" "Position" "Rotation" "String" "Units" "Interpreter" "VerticalAlignment") ("uicontextmenu" "Callback") ("uicontrol" "BackgroundColor" "Callback" "CData" "Enable" "Extent" "FontAngle" "FontName" "FontSize" "FontUnits" "FontWeight" "ForegroundColor" "HorizontalAlignment" "ListboxTop" "Max" "Min" "Position" "String" "Style" "SliderStep" "TooltipString" "Units" "Value") ("uimenu" "Accelerator" "Callback" "Checked" "Enable" "ForegroundColor" "Label" "Position" "Separator") ("uipushtool\\|uitoggletool\\|uitoolbar" "Cdata" "Callback" "Separator" "Visible")) (#$ . 2260)) #@50 Expression for commands that have unknown types. (defvar matlab-unknown-type-commands "[gs]et\\|findobj\\|waitfor" (#$ . 6097)) #@34 Return a list of all properties. (defalias 'matlab-all-known-properties #[nil " \n\203\304 \n@A\"\nA\211\204\305 !*\207" [matlab-core-properties matlab-property-lists tl lst append matlab-uniquify-list] 4 (#$ . 6231)]) #@35 List of all the known properties. (defvar matlab-all-known-properties (matlab-all-known-properties) (#$ . 6465)) #@59 Regexp of all builtin functions that take property lists. (defalias 'matlab-property-function '(macro . #[nil "\300\207" [(let ((r matlab-unknown-type-commands) (tl matlab-property-lists)) (while tl (setq r (concat r "\\|" (car (car tl))) tl (cdr tl))) r)] 1 (#$ . 6584)])) #@264 Return the semantics of the current position. Values are nil 'solo, 'value, and 'boolean. Boolean is a subset of value. nil means there is no semantic content (ie, string or comment.) If optional PREFIX, then return 'solo if that is the only thing on the line. (defalias 'matlab-lattr-semantics #[(&optional prefix) "\306\307!\211@)\310=\204 \203 \212\311 \210\312\313 \314Q!)\203 \315\207\212\316 \210\312\317!)\203-\320\207\212\316 \210\312\321\n \f\203I \322\f@@Q\fA\211\204; *\323Q!)\203T\324\207\325\207" [lvl1 prefix matlab-unknown-type-commands matlab-property-lists tl r matlab-compute-line-context 1 empty beginning-of-line looking-at "\\s-*" "\\s-*$" solo matlab-beginning-of-command "\\s-*\\(if\\|elseif\\|while\\)\\>" boolean "\\s-*\\(" "\\|" "\\)\\>" property value] 6 (#$ . 6865)]) #@423 Return a list of most recent variables starting with PREFIX as a string. Reverse searches for the following are done first: 1) Assignment 2) if|for|while|switch 3) global variables 4) function arguments. All elements are saved in a list, which is then uniquified. If NEXT is non-nil, then the next element from the saved list is used. If the list is empty, then searches continue backwards through the code. (defalias 'matlab-find-recent-variable-list #[(prefix) "\306 \307\310\216\311\n!\210\212\312\313\307\314#\203\315\224\202e)\316\212\307\312\317 \320Q \314#\203;\fG\321W\203;\322\323!\fB\202 \f\237*\212\307\fG\321W\203e\324\325\326! \314#\203e\327\330 \331Q!\203A\322\323!\fB\211\202B\f\237*\212\307\211\211\"#\324\325\332! \314#\203\251\212\315\225b\210\327\333!\203\245\322\323!#\315\225\"\334 #\"\315=\203\236#\fB\"b\210\202\200)\202q\f\237,\212\312\313 \314#\205\356\335\336\337 \314#\205\356\307\211\211\"#\327\340!\203\353\322\323!#\315\225\"\334 #\"\315=\203\344#\fB\"b\210\202\306\f\237+)$$\307%$\203$@\203$@%B%$A\211$\204\372\341%\237!.\207" [case-fold-search oldsyntax matlab-navigation-syntax-table bounds lst prefix syntax-table nil #[nil "\301!\207" [oldsyntax set-syntax-table] 2] set-syntax-table re-search-backward "^\\s-*function\\>" t 0 append "^\\s-*\\(" "\\w+\\)\\s-*=" 10 match-string 1 matlab-re-search-keyword-backward matlab-keyword-regex ctrl looking-at "\\w+\\s-+(?\\(" "\\w+\\)\\_>" vardecl "\\s-*\\(\\w+\\)\\([ ]+\\|$\\)" string-match re-search-forward "\\_<\\(\\w+\\)\\s-*(" matlab-point-at-eol "\\(\\w+\\)\\s-*[,)]\\s-*" matlab-uniquify-list e m syms fl] 9 (#$ . 7683)]) #@46 Maintained by `matlab-find-recent-variable'. (defvar matlab-most-recent-variable-list nil (#$ . 9375)) #@190 Return the most recently used variable starting with PREFIX as a string. See `matlab-find-recent-variable-list' for details. In NEXT is non-nil, than continue through the list of elements. (defalias 'matlab-find-recent-variable #[(prefix &optional next) "\203 @ A)\207\306\n!\307 \310=\203\f\202$\f@\fA *\207" [next matlab-most-recent-variable-list prefix first syms matlab-completion-technique matlab-find-recent-variable-list nil complete] 2 (#$ . 9485)]) #@60 Return a list of user defined functions that match PREFIX. (defalias 'matlab-find-user-functions-list #[(prefix) "\306 \307\310\216\311\n!\210\312\212eb\210\307\313\314\307\315#\203/\313\316\f\317Q\320 \315#\203\321\322! B\202 \237*\307\323 \307\324\f\325Q#\203]\326\327@\"\210@\330\211\224O BA\211\204C *\"\307\211\203\200@\203w@BA\211\204i\331\237!-\207" [case-fold-search oldsyntax matlab-navigation-syntax-table lst prefix default-directory syntax-table nil #[nil "\301!\207" [oldsyntax set-syntax-table] 2] set-syntax-table append re-search-forward "^\\s-*function\\>" t "\\_<\\(" "\\w+\\)\\s-*\\($\\|(\\)" matlab-point-at-eol match-string 1 directory-files "^" "[a-zA-Z][a-zA-Z0-9_]+\\.m$" string-match "\\.m" 0 matlab-uniquify-list files fl syms] 10 (#$ . 9962)]) #@45 Maintained by `matlab-find-user-functions'. (defvar matlab-user-function-list nil (#$ . 10786)) #@130 Return a user function that match PREFIX and return it. If optional argument NEXT is non-nil, then return the next found object. (defalias 'matlab-find-user-functions #[(prefix &optional next) "\203 @ A)\207\306\n!\307 \310=\203\f\202$\f@\fA *\207" [next matlab-user-function-list prefix first syms matlab-completion-technique matlab-find-user-functions-list nil complete] 2 (#$ . 10889)]) #@93 Maintained by `matlab-generic-list-expand'. Holds sub-lists of symbols left to be expanded. (defvar matlab-generic-list-placeholder nil (#$ . 11298)) #@177 Return an element from LIST that start with PREFIX. If optional NEXT argument is non nil, then the next element in the list is used. nil is returned if there are not matches. (defalias 'matlab-generic-list-expand #[(list prefix &optional next) "\203 @ A)\207\306\307\n!P\310\211 \2034\311  @\"\203+ @ B A\211 \204 \237\f\312=\203B \202I @ A\f+\207" [next matlab-generic-list-placeholder prefix fl first re "^" regexp-quote nil string-match complete list matlab-completion-technique] 4 (#$ . 11455)]) #@102 Return PREFIX matching elements for solo symbols. If NEXT then the next patch from the list is used. (defalias 'matlab-solo-completions #[(prefix &optional next) "\303 \n#\207" [matlab-keywords-solo prefix next matlab-generic-list-expand] 4 (#$ . 11988)]) #@103 Return PREFIX matching elements for value symbols. If NEXT then the next patch from the list is used. (defalias 'matlab-value-completions #[(prefix &optional next) "\303 \n#\207" [matlab-keywords-return prefix next matlab-generic-list-expand] 4 (#$ . 12252)]) #@105 Return PREFIX matching elements for boolean symbols. If NEXT then the next patch from the list is used. (defalias 'matlab-boolean-completions #[(prefix &optional next) "\303 \n#\207" [matlab-keywords-boolean prefix next matlab-generic-list-expand] 4 (#$ . 12520)]) #@118 Return PREFIX matching elements for property names in strings. If NEXT then the next property from the list is used. (defalias 'matlab-property-completions #[(prefix &optional next) "\306 \307\211 \203$\n\204$ @@\f\230\203 @A A\211\204 \n\2030\310\n \"\2023\f\311\n #\211<\203P G\312U\203P @\313PC\202Y ;\203Y \313P ,\207" [matlab-property-lists expandto foundlst lst f matlab-core-properties matlab-function-called-at-point nil append matlab-generic-list-expand 1 "'" matlab-all-known-properties prefix next] 5 (#$ . 12793)]) #@91 Maintained by `matlab-complete-symbol'. The prefix used for the first completion command. (defvar matlab-last-prefix nil (#$ . 13353)) #@97 Maintained by `matlab-complete-symbol'. The last type of semantic used while completing things. (defvar matlab-last-semantic nil (#$ . 13494)) #@44 List of searching things we will be doing. (defvar matlab-completion-search-state nil (#$ . 13643)) #@60 Complete a partially typed symbol in a MATLAB mode buffer. (defalias 'matlab-complete-symbol #[(&optional arg) "\302\303!\203\304 \203\203\305 !\207\306 !\207" [matlab-shell-ask-MATLAB-for-completions arg featurep matlab-shell matlab-shell-active-p matlab-complete-symbol-with-shell matlab-complete-symbol-local] 2 (#$ . 13749) "P"]) #@144 Complete a partially typed symbol in a MATLAB mode buffer using `matlab-shell'. Use `completion-in-region' to support the completion behavior. (defalias 'matlab-complete-symbol-with-shell #[(&optional arg) "\306 \307\310\216\311\n!\210\307\211 \312=\204h\313>\203\314\202,\315\212\316v\210`\211)`\211\"\317!\320\236A\321 \f#.\207" [case-fold-search oldsyntax matlab-navigation-syntax-table common-substr-start-pt common-substr-end-pt last-command syntax-table nil #[nil "\301!\207" [oldsyntax set-syntax-table] 2] set-syntax-table matlab-complete-symbol (32 9 10 44 40 91 39) "" buffer-substring-no-properties -1 matlab-shell-completion-list completions completion-in-region prefix completion-info] 5 (#$ . 14097) "P"]) #@65 Return the search functions for context specified by SEMATNICS. (defalias 'matlab--complete-compute-search-functions #[(semantics) "\301\267\202\302\207\303\207\304\207\305\207\306\207" [semantics #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (solo 6 boolean 8 value 10 property 12)) (matlab-solo-completions matlab-find-user-functions matlab-find-recent-variable) (matlab-find-recent-variable matlab-boolean-completions matlab-find-user-functions matlab-value-completions) (matlab-find-recent-variable matlab-find-user-functions matlab-value-completions matlab-boolean-completions) (matlab-property-completions matlab-find-user-functions matlab-find-recent-variable matlab-value-completions) (matlab-find-recent-variable matlab-find-user-functions matlab-value-completions matlab-boolean-completions)] 2 (#$ . 14848)]) #@789 Complete a partially typed symbol in a MATLAB mode buffer. If the previously entered command was also `matlab-complete-symbol' then undo the last completion, and find a new one. The types of symbols tried are based on the semantics of the current cursor position. There are two types of symbols. For example, if the cursor is in an if statement, boolean style functions and symbols are tried first. If the line is blank, then flow control, or high level functions are tried first. The completion technique is controlled with `matlab-completion-technique' It defaults to incremental completion described above. If a completion list is preferred, then change this to 'complete. If you just want a completion list once, then use the universal argument ARG to change it temporarily. (defalias 'matlab-complete-symbol-local #[(&optional arg) "\306 \307\310\216\311\n!\210 \312=\204h\313>\203\314\202$\315\212\316v\210`)`\"\317\f!*\203=+\320=\2039\321\202?\320\202?++ \312=\204R\f, -\322 !.+\323\267\202O\307 \312=/00\204\213.\203\213\324\325.@\"\210.@,/\"\2110\204a.A.\307/\202a`\fG[u\210`|\2100\203\2370c\202\246,c\210\324\326!*\202P\327\330\331\332.\"\"\2111\204\301\324\326!\210\333 \202K1G\334U\203\331`\fG[u\210`|\2101@c\202K1G\335U\203\347\324\326!\202K\331\3361\"2\337\f2\"\2113;\203\f3\230\204`\fG[u\210`|\2103c\202J45r\340\341!q\210p\342 \21054\307\21167\343\2118\3439:\344 \210\345\346!\210+\211;<\347\3501!!\351;!\210+*)\202P\307.\207" [case-fold-search oldsyntax matlab-navigation-syntax-table last-command prefix sem syntax-table nil #[nil "\301!\207" [oldsyntax set-syntax-table] 2] set-syntax-table matlab-complete-symbol (32 9 10 44 40 91 39) "" buffer-substring-no-properties -1 matlab-lattr-semantics complete increment matlab--complete-compute-search-functions #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (increment 89 complete 170)) message "Expand with %S" "No completions." apply append mapcar #[(f) " !\207" [f prefix] 2] ding 1 0 #[(a) "C\207" [a] 1] try-completion get-buffer-create "*Completions*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook display-completion-list matlab-uniquify-list internal-temp-output-buffer-show arg matlab-completion-technique matlab-last-prefix matlab-last-semantic matlab-completion-search-state donext r allsyms al c default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 6 (#$ . 15717) "P"]) (provide 'matlab-complete)