;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\300\312!\210\313\314\315\316\317DD\320\321\322\323\324&\210\313\325\315\316\326DD\327\321\322\323\330&\210\313\331\315\316\332DD\333\321\322\323\334\335\336& \210\313\337\315\316\340DD\341\321\322\323\342\335\343& \207" [require ht json dash f seq pcase treemacs lsp-mode lsp-treemacs lsp-metals-protocol custom-declare-variable lsp-metals-treeview-logging funcall function #[0 "\300\207" [nil] 1] "If non nil log treeview trace/debug messages to the 'lsp-log' for debugging." :group lsp-metals-treeview :type boolean lsp-metals-treeview-workspace-switch-delay #[0 "\300\207" [0.2] 1] "Delay in seconds for switching treeview between workspaces.\nThe delay occurs after 'buffer-list-update-hook' is called before\ntriggering a switch of treeview when navigating between buffers in\ndifferent workspaces." float lsp-metals-treeview-views #[0 "\300\207" [("metalsPackages" "metalsBuild" "metalsCompile" "metalsHelp")] 1] "List of views to display." (repeat string) :package-version (lsp-metals . "1.2") lsp-metals-treeview-theme #[0 "\300\207" [Metals-light] 1] "The theme for treeview icons." (choice (const :tag "Light" 'Metals-light) (const :tag "Dark" 'Metals-dark)) (lsp-metals . "1.2")] 10) #@126 Associate lsp workspace with the metals treeview buffer. Needed to make async calls to the lsp server from treemacs buffers. (defvar lsp-metals-treeview--current-workspace nil (#$ . 1415)) (make-variable-buffer-local 'lsp-metals-treeview--current-workspace) #@57 Metals treeview id associated with the treeview buffer. (defvar lsp-metals-treeview--view-id nil (#$ . 1679)) (make-variable-buffer-local 'lsp-metals-treeview--view-id) (defconst lsp-metals-treeview--root-key 'MetalsTree) #@87 Directory containing Metals treeview icon theme. Directory is relative to lsp-metals. (defconst lsp-metals-treeview--icon-dir "icons" (#$ . 1907)) #@120 Prefix for all Metals treeview buffers. Note the space prefix which hides the buffers within the buffer list in Emacs. (defconst lsp-metals-treeview--buffer-prefix " *Metals" (#$ . 2061)) #@52 The directory lsp-metals-treeview.el is stored in. (defconst lsp-metals-treeview--dir (byte-code "\302\203 \303!\202\f !\207" [load-file-name default-directory expand-file-name file-name-directory] 3) (#$ . 2255)) #@58 Metadata key to store treeview buffers within workspace. (defconst lsp-metals-treeview--buffers-key "metals-treeview-buffers" (#$ . 2479)) #@74 Server id metals lsp client should be registered from within lsp-metals. (defconst lsp-metals-treeview--metals-server-id 'metals (#$ . 2624)) (defvar lsp-metals-treeview--treemacs-node-index (make-hash-table :test 'equal) nil) (make-variable-buffer-local 'lsp-metals-treeview--treemacs-node-index) #@139 Workspace associated with the active treeview instance. When the treeview is displayed and visible this variable will hold the workspace. (defvar lsp-metals-treeview--active-view-workspace nil (#$ . 2929)) #@120 Side window position of Metals treeview with the given SLOT. Uses defaults for treemacs position and width. (fn SLOT) (defalias 'lsp-metals-treeview--position #[257 "\302B\303B\304 BE\207" [treemacs-position treemacs-width side slot window-width] 5 (#$ . 3142)]) #@212 Active buffer has changed check if current treeview is valid. When the buffer is switched check to see if a treeview is currently being displayed and whether we need to show an alternative workspace's treeview. (defalias 'lsp-metals-treeview--buffer-changed #[0 "rpq\210\303=\205&\304 \305\"\205&\n\205&\n\306 \235?\205&\307\n!\210\310\306 @!)\207" [major-mode lsp-metals-treeview--metals-server-id lsp-metals-treeview--active-view-workspace scala-mode lsp-find-workspace nil lsp-workspaces lsp-metals-treeview--hide-window lsp-metals-treeview--show-window] 3 (#$ . 3415)]) #@182 Active buffer changed check if treeview needs to be changed. If the user switches buffers in different workspaces we need to swap the treeview to show the new workspace's treeview. (defalias 'lsp-metals-treeview--buffer-list-update #[0 "\301\302\303#\207" [lsp-metals-treeview-workspace-switch-delay run-with-idle-timer nil lsp-metals-treeview--buffer-changed] 4 (#$ . 4001)]) #@213 Add hook to swap treeviews between workspace buffers. Add a 'buffer-list-update-hook' to hide/show the active treeview - if currently displayed - when the user switches buffers that are within another workspace. (defalias 'lsp-metals-treeview--add-workspace-switch-hook #[0 "\300\301\302\"\207" [add-hook buffer-list-update-hook lsp-metals-treeview--buffer-list-update] 3 (#$ . 4386)]) #@197 Remove the hook to swap treeviews between workspace buffers. Remove the 'buffer-list-update-hook' which deals with switching treeview when the active buffer switches between different workspaces. (defalias 'lsp-metals-treeview--remove-workspace-switch-hook #[0 "\300\301\302\"\207" [remove-hook buffer-list-update-hook lsp-metals-treeview--buffer-list-update] 3 (#$ . 4779)]) #@167 Log treeview tracing/debug messages to the lsp log. Use the FORMAT formatting string and ARGS arguments to format the message and parameters. (fn FORMAT &rest ARGS) (defalias 'lsp-metals-treeview--log #[385 "\205 \301\302#\207" [lsp-metals-treeview-logging apply lsp-log] 6 (#$ . 5162)]) #@105 Add BUFFER with key VIEW-ID to treeview buffers stored in the WORKSPACE. (fn WORKSPACE VIEW-ID BUFFER) (defalias 'lsp-metals-treeview--add-buffer #[771 "B\301H\302\303\304#B#\207" [lsp-metals-treeview--buffers-key 14 puthash gethash nil] 13 (#$ . 5462)]) #@65 Clear treeview buffers stored in the WORKSPACE. (fn WORKSPACE) (defalias 'lsp-metals-treeview--remove-buffers #[257 "\211\301H\302\303#\207" [lsp-metals-treeview--buffers-key 14 puthash nil] 7 (#$ . 5734)]) #@57 Return buffers stored in the WORKSPACE. (fn WORKSPACE) (defalias 'lsp-metals-treeview--get-buffers #[257 "\301\302\303\304H\305#\"\207" [lsp-metals-treeview--buffers-key -map cdr gethash 14 nil] 7 (#$ . 5951)]) #@81 Return buffer with key VIEW-ID stored in the WORKSPACE. (fn WORKSPACE VIEW-ID) (defalias 'lsp-metals-treeview--get-buffer-by-id #[514 "\301\302\303H\304#\304\211\305%\207" [lsp-metals-treeview--buffers-key alist-get gethash 14 nil equal] 8 (#$ . 6171)]) #@52 Return a view name from the VIEW-ID. (fn VIEW-ID) (defalias 'lsp-metals-treeview--view-name #[257 "\300\301\302#\207" [replace-regexp-in-string "metals" ""] 5 (#$ . 6435)]) #@88 Return buffer name of the treeview from WORKSPACE and VIEW-ID. (fn WORKSPACE VIEW-ID) (defalias 'lsp-metals-treeview--buffer-name #[514 "\301\302\303!\304\305\306H!!$\207" [lsp-metals-treeview--buffer-prefix format "%s %s %s*" lsp-metals-treeview--view-name file-name-nondirectory directory-file-name 4] 10 (#$ . 6616)]) #@180 Hide the Metals treeview window associated with the WORKSPACE. The window will be deleted but the treeview buffers will still be live in the background. (fn &optional WORKSPACE) (defalias 'lsp-metals-treeview--hide-window #[256 "\211\206\211\205\302\303\304\"\305!\"\210\306\307 \207" [lsp-metals-treeview--current-workspace lsp-metals-treeview--active-view-workspace -map make-closure #[257 "r\211q\210\302\300 \303#\210)\304\305!!\207" [V0 lsp-metals-treeview--view-id lsp-metals-treeview--send-visibility-did-change nil delete-window get-buffer-window] 5 "\n\n(fn BUFFER)"] lsp-metals-treeview--get-buffers nil lsp-metals-treeview--remove-workspace-switch-hook] 6 (#$ . 6949) nil]) #@157 Retrieve buffers associated with the current selected frame. Check to see if any of these buffers are metals treeview buffers and if so return the buffers. (defalias 'lsp-metals-treeview--get-visible-buffers #[0 "\300\301\302\303 !\"\207" [-keep #[257 "\301!\302\303!\"\205 \211\207" [lsp-metals-treeview--buffer-prefix window-buffer s-starts-with\? buffer-name] 6 "\n\n(fn WINDOW)"] window-list selected-frame] 4 (#$ . 7651)]) #@89 Is the metals treeview associated with the WORKSPACE currently visible? (fn WORKSPACE) (defalias 'lsp-metals-treeview--visible\? #[257 "\300 \211\205\301!\211\205\232\262\207" [lsp-metals-treeview--get-visible-buffers lsp-metals-treeview--get-buffers] 5 (#$ . 8089)]) #@133 Does a Metals Treeview exist for the WORKSPACE? The treeview may not be visible but still exists in the background. (fn WORKSPACE) (defalias 'lsp-metals-treeview--exists\? #[257 "\300!\211\205 \301\302\"\207" [lsp-metals-treeview--get-buffers -all-p buffer-live-p] 5 (#$ . 8373)]) #@91 Does the metals treeview associated with WORKSPACE exist but not visible? (fn WORKSPACE) (defalias 'lsp-metals-treeview--hidden\? #[257 "\300!\205\n\301!?\207" [lsp-metals-treeview--exists\? lsp-metals-treeview--visible\?] 3 (#$ . 8664)]) #@152 Return visibility status of metals treeview associated with WORKSPACE. Return 'visible, 'hidden, 'none depending on state of treeview. (fn WORKSPACE) (defalias 'lsp-metals-treeview--get-visibility #[257 "\300!\203\301\207\302!\203\303\207\304\207" [lsp-metals-treeview--visible\? visible lsp-metals-treeview--exists\? hidden none] 3 (#$ . 8914)]) #@249 Show metals treeview window associated with WORKSPACE. Optionally select the window based on SELECT-WINDOW? being True. If the treeview window is hidden or not visible (not created) then show the window. (fn WORKSPACE &optional SELECT-WINDOW\=\?) (defalias 'lsp-metals-treeview--show-window #[513 "\300!\211\301=\204\211\302=\205\303\304#\207" [lsp-metals-treeview--get-visibility hidden none lsp-metals-treeview--show-views 0] 7 (#$ . 9275)]) #@398 Delete the metals treeview window associated with the WORKSPACE. If WORKSPACE is not provided the current treeview buffer local variable WORKSPACE will be used. This function is also called from an lsp hook which will be called when the workspace is shutdown - in this case we won't notify Metals of view being hidden if WORKSPACE-SHUTDOWN? is t. (fn &optional WORKSPACE WORKSPACE-SHUTDOWN\=\?) (defalias 'lsp-metals-treeview--delete-window #[512 "\206\302\303\304#\305!\"\210\306!\210\307\310 \210\311\312\313\"\207" [lsp-metals-treeview--current-workspace lsp-metals-treeview--active-view-workspace -map make-closure #[257 "\304!\210\n\203\300\204\301\305H\306=\203\307 \n\310#\210\311!\207" [V0 V1 lsp-metals-treeview--view-id lsp-metals-treeview--current-workspace switch-to-buffer 13 initialized lsp-metals-treeview--send-visibility-did-change nil kill-buffer] 5 "\n\n(fn TREEVIEW-BUFFER)"] lsp-metals-treeview--get-buffers lsp-metals-treeview--remove-buffers nil lsp-metals-treeview--remove-workspace-switch-hook remove-hook lsp-after-uninitialized-hook lsp-metals-treeview--delete-window] 8 (#$ . 9734)]) #@301 Handler for lsp WORKSPACE shutdown. Ensure we close our treeview windows/buffers. Under this scenario we shouldn't contact Metals to update view visibility status, so we pass through workspace-shutdown true so that the 'delete-window' function has the context of the window closing. (fn WORKSPACE) (defalias 'lsp-metals-treeview--on-workspace-shutdown #[257 "\300\301\"\207" [lsp-metals-treeview--delete-window t] 4 (#$ . 10872)]) #@40 Keymap for 'lsp-metals-treeview-mode'. (defvar lsp-metals-treeview-mode-map (byte-code "\300 \301\302\303#\210\207" [make-sparse-keymap define-key "q" lsp-metals-treeview--hide-window] 5) (#$ . 11312)) #@117 Non-nil if Lsp-Metals-Treeview mode is enabled. Use the command `lsp-metals-treeview-mode' to change this variable. (defvar lsp-metals-treeview-mode nil (#$ . 11522)) (make-variable-buffer-local 'lsp-metals-treeview-mode) #@605 LSP Metals Treeview minor mode. This is a minor mode. If called interactively, toggle the `Lsp-Metals-Treeview mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `lsp-metals-treeview-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'lsp-metals-treeview-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [lsp-metals-treeview-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks lsp-metals-treeview-mode-hook lsp-metals-treeview-mode-on-hook lsp-metals-treeview-mode-off-hook called-interactively-p any message "Lsp-Metals-Treeview mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 11751) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar lsp-metals-treeview-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\310\211%\207" [lsp-metals-treeview-mode-map lsp-metals-treeview-mode-hook variable-documentation put "Hook run after entering or leaving `lsp-metals-treeview-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode lsp-metals-treeview-mode] 6) #@253 Show or create the side window and treeview. The window will be created for the Metals VIEW-ID within the current WORKSPACE. The window will be positioned as a side window by POSITION and is of the form '((side left)). (fn WORKSPACE VIEW-ID POSITION) (defalias 'lsp-metals-treeview--show-view #[771 "\306\307!\"\310!\211\203:\311\312\"!r\313\314\"\216\315@\316\"\210\317\320\"\210\321\322D\323\"\210\324\325 \323\"\210\326\325 \327\323#*\207\330!\312\"\311!r\313\331\"\216\315@\316\"\210\324\323\"\210\332 \210\333\302!\210\333\303!\210\334 \210\333\304!\210\307!\335#\210\326\327\323#\210\336\337!\210\333\305!\210\340\341 *\262)\207" [lsp-metals-treeview--root-key lsp--cur-workspace lsp-metals-treeview--current-workspace lsp-metals-treeview--view-id mode-line-format treemacs-default-visit-action lsp-metals-treeview--buffer-name lsp-metals-treeview--view-name get-buffer internal--before-with-selected-window display-buffer-in-side-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord lsp-metals-treeview--log "Refreshing tree %s" treemacs-update-node :custom t set-window-dedicated-p selected-window set-window-parameter no-delete-other-windows get-buffer-create #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] treemacs-initialize make-local-variable treemacs-METALS-ROOT-extension lsp-metals-treeview--add-buffer lsp-metals-treeview-mode 1 treemacs-RET-action treemacs-expand-metals-root] 12 (#$ . 13603)]) #@210 Recursive function to display each view in VIEWS. The views will be associated with the WORKSPACE and displayed in the side window based based on an increasing SLOT number position. (fn WORKSPACE VIEWS SLOT) (defalias 'lsp-metals-treeview--display-views #[771 "@\211\205\300\301!#\210\302\303#\210\304AT#\207" [lsp-metals-treeview--show-view lsp-metals-treeview--position lsp-metals-treeview--send-visibility-did-change t lsp-metals-treeview--display-views] 9 (#$ . 15135)]) #@130 Switch focus to the treeview window in the given WORKSPACE. Select the first view/buffer in the treeview window. (fn WORKSPACE) (defalias 'lsp-metals-treeview--select-window #[257 "\300\301\302!@!!\207" [select-window get-buffer-window lsp-metals-treeview--get-buffers] 5 (#$ . 15629)]) #@347 Display each metals view in our sidebar treeview window. Views are displayed for this WORKSPACE. SLOT is a numeric position starting from 0 where the treeview will be positioned relative to the others. when SELECT-TREEVIEW-WINDOW is 't' the treeview window will be selected and have focus. (fn WORKSPACE SLOT &optional SELECT-TREEVIEW-WINDOW) (defalias 'lsp-metals-treeview--show-views #[770 "\302#\210\211\203\303!\210\304 \210\305\306\307\"\207" [lsp-metals-treeview-views lsp-metals-treeview--active-view-workspace lsp-metals-treeview--display-views lsp-metals-treeview--select-window lsp-metals-treeview--add-workspace-switch-hook add-hook lsp-after-uninitialized-hook lsp-metals-treeview--on-workspace-shutdown] 7 (#$ . 15925)]) #@322 Build an index of treemacs nodes nodeUri -> treemacs path. We can use this to find nodes within the tree based on nodeUri which Metals will send us. METALS-NODES contains a list of new nodes added to the tree to be displayed, CURRENT-TREEMACS-NODE is the paren to the new nodes. (fn METALS-NODES CURRENT-TREEMACS-NODE) (defalias 'lsp-metals-treeview--cache-add-nodes #[514 "\300\301\"\302\303\304\"\"\207" [get-text-property :path -map make-closure #[257 "\302\303\"\211\205\304\305\306\300C\" #\210\207" [V0 lsp-metals-treeview--treemacs-node-index gethash "nodeUri" nil puthash append] 8 "\n\n(fn METALS-NODE)"]] 7 (#$ . 16677)]) #@160 Find treemacs node based on NODE-URI via our local index. If the node cannot be found in the tree make sure we cleanup the cache and remove it. (fn NODE-URI) (defalias 'lsp-metals-treeview--find-node #[257 "\301\302#\211\203\303!\211\203\207\304\"\210\302\207\304\"\210\302\207" [lsp-metals-treeview--treemacs-node-index gethash nil treemacs-find-node remhash] 6 (#$ . 17326)]) #@208 Metals treeview changed notification. Nodes that have been changed will be provided within the PARAMS message with their viewIds. WORKSPACE will be the current workspace of the project. (fn INPUT0 INPUT1) (defalias 'lsp-metals-treeview--did-change #[514 "\300\301\"\302\303\304H\305\306\307\310\311%#\210\312\313\314\"\"\207" [gethash "nodes" lsp-metals-treeview--log "In lsp-metals-treeview--did-change %s\n%s" 4 json-serialize :null-object nil :false-object :json-false mapc make-closure #[257 "\302\303\"\211\205R\302\304\"\211\205P\305\300\"\211\205Nr\211q\210\302\306\"\211\203E\307!\211\203=\310\311\312\"\"\210\313\311\314\"\315\"\202@\316\317!\262\202K\313\320 D\321\"\262)\262\262\207" [V0 lsp-metals-treeview--root-key gethash "viewId" "label" lsp-metals-treeview--get-buffer-by-id "nodeUri" lsp-metals-treeview--find-node lsp:set-tree-view-node-label get-text-property :node treemacs-update-node :parent nil lsp-metals-treeview--log "Failed to find node in treeview" :custom t] 10 "\n\n(fn NODE)"]] 13 (#$ . 17723)]) #@354 Query children in the view given by VIEW-ID. An optional NODE-URI can be used to query children of a specific node within the view. This call is synchronous and will return the response from the call to metas/treeViewChildren. Under the hood LSP-REQUEST will send the request asynchronously and wait for the response. (fn VIEW-ID &optional NODE-URI) (defalias 'lsp-metals-treeview--send-treeview-children #[513 "\300\301!\210\302\303\304\305D\205\306D\"\"\207" [lsp-metals-treeview--log "Sending metals/treeViewChildren" lsp-request "metals/treeViewChildren" append :viewId :nodeUri] 8 (#$ . 18785)]) #@373 Send metals/treeViewVisibilityDidChange when views are shown/hidden. We need to keep Metals informed when views are shown/hidden so it can optimise the notification messages it sends us. WORKSPACE is the current lsp workspace, VIEW-ID is the view for which the visibility has changed described by the boolean value VISIBLE - t or nil. (fn WORKSPACE VIEW-ID VISIBLE\=\?) (defalias 'lsp-metals-treeview--send-visibility-did-change #[771 "\301\302#\210\303\304F\305\306\307\310\311%)\207" [lsp--cur-workspace lsp-metals-treeview--log "view visibility changed %s %s" :viewId :visible lsp-request-async "metals/treeViewVisibilityDidChange" #[257 "\300\301\302\303\304\305%!\207" [lsp-metals-treeview--log json-serialize :null-object nil :false-object :json-false] 8 "\n\n(fn RESPONSE)"] :mode detached] 10 (#$ . 19401)]) #@309 Send metals/treeViewNodeCollapseDidChange when a node has collapsed/expanded. WORKSPACE is the current workspace, VIEW-ID the id of the view containing the node with NODE-URI which has been collapsed or expanded based on the boolean COLLAPSED? either t or nil. (fn WORKSPACE VIEW-ID NODE-URI COLLAPSED\=\?) (defalias 'lsp-metals-treeview--send-node-collapse-did-change #[1028 "\302\303$\210\304\305\306\203\307\202\257\310\311\312\313\314%)\207" [json-false lsp--cur-workspace lsp-metals-treeview--log "sending metals/treeViewNodeCollapseDidChange viewId %s nodeUri %s collapsed? %s" :viewId :nodeUri :collapsed t lsp-request-async "metals/treeViewNodeCollapseDidChange" #[257 "\300\301\302\303\304\305\306%\"\207" [lsp-metals-treeview--log "metals/treeViewNodeCollapseDidChange response:\n %s" json-serialize :null-object nil :false-object :json-false] 9 "\n\n(fn RESPONSE)"] :mode detached] 11 (#$ . 20234)]) #@384 Retrieve children of the view given by the VIEW-ID and optionally the node. Children of the view can be returned and optionally by specifying a NODE-URI this function will return the node's children. Without a NODE-URI the top level child items will be returned for the view. Returns a list of nodes with values converted from json to hash tables. (fn VIEW-ID &optional NODE-URI) (defalias 'lsp-metals-treeview--get-children #[513 "\302\303 \304 \305\306$\211\205\307\310\"\262\311\312\313\"\"\314\306\"\315\316\317\320\306\321\322%\"\210\323!\2039\2039\324\"\210\266\202)\207" [lsp-metals-treeview--current-workspace lsp--cur-workspace text-property-not-all point-at-bol point-at-eol button nil copy-marker t gethash "nodes" lsp-metals-treeview--send-treeview-children append lsp-metals-treeview--log "Children returned:\n%s" json-serialize :null-object :false-object :json-false -non-nil lsp-metals-treeview--cache-add-nodes] 13 (#$ . 21169)]) #@120 Retrieve children of the currently selected node in the treeview. See LSP-METALS-TREEVIEW--GET-CHILDREN. (fn &rest _) (defalias 'lsp-metals-treeview--get-children-current-node #[128 "\300\301 \302 \303\304$\211\205\305\306\"\262\211\2058\307\310\"\211\2056\311\312\"\211\2054\311\313\"\211\2052\314\"\262\262\262\207" [text-property-not-all point-at-bol point-at-eol button nil copy-marker t get-text-property :node gethash "viewId" "nodeUri" lsp-metals-treeview--get-children] 8 (#$ . 22141)]) #@369 Return icon based on METALS-NODE. The icon will depend on the individual METALS-NODE and whether the node is expanding based on OPEN-FORM? being True. Check if icon matches one of our icons for the Metals theme and if not display a standard +/- if this is an expandable node. If the node isn't expandable for now do not show an icon. (fn METALS-NODE OPEN-FORM\=\?) (defalias 'lsp-metals-treeview--icon #[514 "\303\304\"\211\203\230\305\306\305\211\211\203@\211A\262\242\262\262\211\262\203@\307H\310\230\2033\305\262\203@\262\262T\262\202\266\211\262\211\311H\303\305#\266\202\206\372\305\306\305\211\211\203\212\211A\262\242\262\262\211\262\203\212\307H \230\203}\305\262\203\212\262\262T\262\202X\266\211\262\211\311H\303\305#\207\312\313\"\203\355\305\306\305\211\211\203\327\211A\262\242\262\262\211\262\203\327\307H\n\230\203\312\305\262\203\327\262\262T\262\202\245\266\211\262\211\311H\303\203\350\314\202\351\315\305#\207\316\317\320D\321\322\323\324%\266\202\207" [treemacs--themes lsp-metals-treeview-theme lsp-treemacs-theme gethash "icon" nil 0 1 Metals 3 lsp-get :collapseState expanded collapsed " " face font-lock-string-face apply propertize icon t] 11 (#$ . 22660)]) #@216 Create and send a 'workspace/executeCommand'. The message will contain the COMMAND and optional ARGS. Send the command asynchronously rather than the default 'lsp-mode' of synchronous. (fn COMMAND &optional ARGS) (defalias 'lsp-metals-treeview--send-execute-command-async #[513 "\300\301\302\303F\304\305\306%\207" [lsp-request-async "workspace/executeCommand" :command :arguments ignore :mode detached] 8 (#$ . 23947)]) #@69 Execute the action associated with the treeview node. (fn &rest _) (defalias 'lsp-metals-treeview--exec-node-action #[128 "\302\303 \304 \305\306$\211\205\307\310\"\262\311\312\"\262\211\205O\313\314\"\211\205M\313\314\"\211\205K\211\315\232\203@\316\317\320\321\"\322\"!\202J\211\316\320\321\"\"\262)\262\262\207" [lsp-metals-treeview--current-workspace lsp--cur-workspace text-property-not-all point-at-bol point-at-eol button nil copy-marker t get-text-property :node gethash "command" "metals-echo-command" lsp-metals-treeview--send-execute-command-async seq-elt lsp-get :arguments 0] 10 (#$ . 24378)]) #@272 Send metals/treeViewNodeCollapseDidChange to indicate collapsed/expanded. Metals node is a node attached to treemacs in the :node key - passed as item during render. COLLAPSED? either t or nil dependong on if the node has been collapsed or expanded. (fn INPUT0 INPUT1) (defalias 'lsp-metals-treeview--on-node-collapsed #[514 "\302\303\"\304 $\207" [lsp-metals-treeview--current-workspace lsp-metals-treeview--view-id gethash "nodeUri" lsp-metals-treeview--send-node-collapse-did-change] 9 (#$ . 25014)]) (byte-code "\304\305\306\307\310$\304\305\306\307\310$\311\312\313\314\315 \"\316\317&\320\321\"\210\211\211\322H\323\324\"\325\326!\2044\327\202\233 \211\211\250\203R\330\331\"\203R\332\333_!\332\334_!\262\262\210 \250\203p\325\335!\203p\336\335\337\340\341\342\343\n& \266\202\202\200\336\326\337\340\341\342\343\n& \266\202\344!\345\244\210\211\346\244\210\347\350\351\352\353&\350P\266\202\211\327B\262\n\354H\n\355H@A\356\357\351#\204\271\347\350\351#\262\320\360\361\"\210\362\337!\210\363\357\337\211\203\354\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\306\266 \n\322H\323\365\"\325\326!\204\377\350\202f \211\211\250\203\330\331\"\203\332\333_!\332\334_!\262\262\210 \250\203;\325\335!\203;\336\335\337\340\341\342\343\n& \266\202\202K\336\326\337\340\341\342\343\n& \266\202\344!\366\244\210\211\367\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\204\347\350\351#\262\370\357\337\211\203\256\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\210\266 \n\322H\323\371\"\325\326!\204\301\350\202( \211\211\250\203\337\330\331\"\203\337\332\333_!\332\334_!\262\262\210 \250\203\375\325\335!\203\375\336\335\337\340\341\342\343\n& \266\202\202 \336\326\337\340\341\342\343\n& \266\202\344!\372\244\210\211\373\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204F\347\350\351#\262\374\357\337\211\203p\211A\262\242\262\262T\262\364\n#\210\364 #\210\202J\266 \n\322H\323\375\"\325\326!\204\203\350\202\352 \211\211\250\203\241\330\331\"\203\241\332\333_!\332\334_!\262\262\210 \250\203\277\325\335!\203\277\336\335\337\340\341\342\343\n& \266\202\202\317\336\326\337\340\341\342\343\n& \266\202\344!\376\244\210\211\377\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\347\350\351#\262\201@\357\337\211\2034\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\266 \n\322H\323\201A\"\325\326!\204I\350\202\264 \211\211\250\203g\330\331\"\203g\332\333_!\332\334_!\262\262\210 \250\203\205\325\335!\203\205\336\335\337\340\341\342\343\n& \266\202\202\225\336\326\337\340\341\342\343\n& \266\202\344!\201B\244\210\211\201C\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\322\347\350\351#\262\201D\357\337\211\203\376\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\330\266 \n\322H\323\201E\"\325\326!\204\350\202~ \211\211\250\2031\330\331\"\2031\332\333_!\332\334_!\262\262\210 \250\203O\325\335!\203O\336\335\337\340\341\342\343\n& \266\202\202_\336\326\337\340\341\342\343\n& \266\202\344!\201F\244\210\211\201G\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\234\347\350\351#\262\201H\357\337\211\203\310\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\242\266 \n\322H\323\201I\"\325\326!\204\335\350\202H \211\211\250\203\373\330\331\"\203\373\332\333_!\332\334_!\262\262\210 \250\203\325\335!\203\336\335\337\340\341\342\343\n& \266\202\202)\336\326\337\340\341\342\343\n& \266\202\344!\201J\244\210\211\201K\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204f\347\350\351#\262\201L\357\337\211\203\222\211A\262\242\262\262T\262\364\n#\210\364 #\210\202l\266 \n\322H\323\201M\"\325\326!\204\247\350\202 \211\211\250\203\305\330\331\"\203\305\332\333_!\332\334_!\262\262\210 \250\203\343\325\335!\203\343\336\335\337\340\341\342\343\n& \266\202\202\363\336\326\337\340\341\342\343\n& \266\202\344!\201N\244\210\211\201O\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\2040\347\350\351#\262\201P\357\337\211\203\\\211A\262\242\262\262T\262\364\n#\210\364 #\210\2026\266 \n\322H\323\201Q\"\325\326!\204q\350\202\334 \211\211\250\203\217\330\331\"\203\217\332\333_!\332\334_!\262\262\210 \250\203\255\325\335!\203\255\336\335\337\340\341\342\343\n& \266\202\202\275\336\326\337\340\341\342\343\n& \266\202\344!\201R\244\210\211\201S\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\372\347\350\351#\262\201T\357\337\211\203&\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\266 \n\322H\323\201U\"\325\326!\204;\350\202\246 \211\211\250\203Y\330\331\"\203Y\332\333_!\332\334_!\262\262\210 \250\203w\325\335!\203w\336\335\337\340\341\342\343\n& \266\202\202\207\336\326\337\340\341\342\343\n& \266\202\344!\201V\244\210\211\201W\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\304\347\350\351#\262\201X\357\337\211\203\360\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\312\266 \201Y!\210)\266\304\305\306\307\310$\304\305\306\307\310$\311\312\201Z\314\315 \"\316\317&\320\321\"\210\211\211\322H\323\201[\"\325\326!\2043\350\202\236 \211\211\250\203Q\330\331\"\203Q\332\333_!\332\334_!\262\262\210 \250\203o\325\335!\203o\336\335\337\340\341\342\343\n& \266\202\202\336\326\337\340\341\342\343\n& \266\202\344!\201\\\244\210\211\201]\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\274\347\350\351#\262\201^\357\337\211\203\350\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\302\266 \n\322H\323\201_\"\325\326!\204\375\350\202h \211\211\250\203 \330\331\"\203 \332\333_!\332\334_!\262\262\210 \250\2039 \325\335!\2039 \336\335\337\340\341\342\343\n& \266\202\202I \336\326\337\340\341\342\343\n& \266\202\344!\201`\244\210\211\201a\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\206 \347\350\351#\262\201b\357\337\211\203\262 \211A\262\242\262\262T\262\364\n#\210\364 #\210\202\214 \266 \n\322H\323\201c\"\325\326!\204\307 \350\2022\n \211\211\250\203\345 \330\331\"\203\345 \332\333_!\332\334_!\262\262\210 \250\203\n\325\335!\203\n\336\335\337\340\341\342\343\n& \266\202\202\n\336\326\337\340\341\342\343\n& \266\202\344!\201d\244\210\211\201e\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204P\n\347\350\351#\262\201f\357\337\211\203|\n\211A\262\242\262\262T\262\364\n#\210\364 #\210\202V\n\266 \n\322H\323\201g\"\325\326!\204\221\n\350\202\374\n \211\211\250\203\257\n\330\331\"\203\257\n\332\333_!\332\334_!\262\262\210 \250\203\315\n\325\335!\203\315\n\336\335\337\340\341\342\343\n& \266\202\202\335\n\336\326\337\340\341\342\343\n& \266\202\344!\201h\244\210\211\201i\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204 \347\350\351#\262\201j\357\337\211\203F \211A\262\242\262\262T\262\364\n#\210\364 #\210\202 \266 \n\322H\323\201k\"\325\326!\204[ \350\202\306 \211\211\250\203y \330\331\"\203y \332\333_!\332\334_!\262\262\210 \250\203\227 \325\335!\203\227 \336\335\337\340\341\342\343\n& \266\202\202\247 \336\326\337\340\341\342\343\n& \266\202\344!\201l\244\210\211\201m\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\344 \347\350\351#\262\201n\357\337\211\203\f\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\352 \266 \n\322H\323\201o\"\325\326!\204%\f\350\202\220\f \211\211\250\203C\f\330\331\"\203C\f\332\333_!\332\334_!\262\262\210 \250\203a\f\325\335!\203a\f\336\335\337\340\341\342\343\n& \266\202\202q\f\336\326\337\340\341\342\343\n& \266\202\344!\201p\244\210\211\201q\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\256\f\347\350\351#\262\201r\357\337\211\203\332\f\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\264\f\266 \n\322H\323\201s\"\325\326!\204\357\f\350\202Z \211\211\250\203 \330\331\"\203 \332\333_!\332\334_!\262\262\210 \250\203+ \325\335!\203+ \336\335\337\340\341\342\343\n& \266\202\202; \336\326\337\340\341\342\343\n& \266\202\344!\201t\244\210\211\201u\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204x \347\350\351#\262\201v\357\337\211\203\244 \211A\262\242\262\262T\262\364\n#\210\364 #\210\202~ \266 \201Y!\210)\266\304\305\306\307\310$\304\305\306\307\310$\311\312\201w\314\315 \"\316\317&\320\321\"\210\211\211\322H\323\201x\"\325\326!\204\347 \350\202R \211\211\250\203\330\331\"\203\332\333_!\332\334_!\262\262\210 \250\203#\325\335!\203#\336\335\337\340\341\342\343\n& \266\202\2023\336\326\337\340\341\342\343\n& \266\202\344!\201y\244\210\211\201z\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204p\347\350\351#\262\201{\357\337\211\203\234\211A\262\242\262\262T\262\364\n#\210\364 #\210\202v\266 \n\322H\323\201|\"\325\326!\204\261\350\202 \211\211\250\203\317\330\331\"\203\317\332\333_!\332\334_!\262\262\210 \250\203\355\325\335!\203\355\336\335\337\340\341\342\343\n& \266\202\202\375\336\326\337\340\341\342\343\n& \266\202\344!\201}\244\210\211\201~\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204:\347\350\351#\262\201\357\337\211\203f\211A\262\242\262\262T\262\364\n#\210\364 #\210\202@\266 \n\322H\323\201\200\"\325\326!\204{\350\202\346 \211\211\250\203\231\330\331\"\203\231\332\333_!\332\334_!\262\262\210 \250\203\267\325\335!\203\267\336\335\337\340\341\342\343\n& \266\202\202\307\336\326\337\340\341\342\343\n& \266\202\344!\201\201\244\210\211\201\202\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\347\350\351#\262\201\203\357\337\211\2030\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\n\266 \n\322H\323\201\204\"\325\326!\204E\350\202\260 \211\211\250\203c\330\331\"\203c\332\333_!\332\334_!\262\262\210 \250\203\201\325\335!\203\201\336\335\337\340\341\342\343\n& \266\202\202\221\336\326\337\340\341\342\343\n& \266\202\344!\201\205\244\210\211\201\206\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\316\347\350\351#\262\201\207\357\337\211\203\372\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\324\266 \n\322H\323\201\210\"\325\326!\204\350\202z \211\211\250\203-\330\331\"\203-\332\333_!\332\334_!\262\262\210 \250\203K\325\335!\203K\336\335\337\340\341\342\343\n& \266\202\202[\336\326\337\340\341\342\343\n& \266\202\344!\201\211\244\210\211\201\212\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204\230\347\350\351#\262\201\213\357\337\211\203\304\211A\262\242\262\262T\262\364\n#\210\364 #\210\202\236\266 \n\322H\323\201\214\"\325\326!\204\331\350\202D \211\211\250\203\367\330\331\"\203\367\332\333_!\332\334_!\262\262\210 \250\203\325\335!\203\336\335\337\340\341\342\343\n& \266\202\202%\336\326\337\340\341\342\343\n& \266\202\344!\201\215\244\210\211\201\216\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204b\347\350\351#\262\201\217\357\337\211\203\216\211A\262\242\262\262T\262\364\n#\210\364 #\210\202h\266 \n\322H\323\201\220\"\325\326!\204\243\350\202 \211\211\250\203\301\330\331\"\203\301\332\333_!\332\334_!\262\262\210 \250\203\337\325\335!\203\337\336\335\337\340\341\342\343\n& \266\202\202\357\336\326\337\340\341\342\343\n& \266\202\344!\201\221\244\210\211\201\222\244\210\347\350\351\352\353&\350P\266\202\211\350B\262\n\354H\n\355H@A\356\357\351#\204,\347\350\351#\262\201\223\357\337\211\203X\211A\262\242\262\262T\262\364\n#\210\364 #\210\2022\266 \201Y!\210)\266\207" [lsp-metals-treeview--dir lsp-metals-treeview--icon-dir treemacs--current-theme treemacs--icon-size make-hash-table :size 300 :test equal treemacs-theme->create! :name "Metals" :path f-join :gui-icons :tui-icons add-to-list treemacs--themes 2 treemacs-join-path "logo.png" image-type-available-p png "" s-starts-with\? "root-" round 0.909 1.1818 imagemagick create-image nil :ascent center :width :height copy-sequence (:background #2="green") (:background #3="unspecified-bg") propertize " " display img-selected img-unselected 3 4 get-text-property 0 treemacs--icon-symbols root (lambda (#1=#:def-tmp-var) (defvar treemacs-icon-root #1#)) (root) puthash "method.png" (:background #2#) (:background #3#) ("method") "class.png" (:background #2#) (:background #3#) ("class") "object.png" (:background #2#) (:background #3#) ("object") "enum.png" (:background #2#) (:background #3#) ("enum") "field.png" (:background #2#) (:background #3#) ("field") "interface.png" (:background #2#) (:background #3#) ("interface") "trait.png" (:background #2#) (:background #3#) ("trait") "val.png" (:background #2#) (:background #3#) ("val") "var.png" (:background #2#) (:background #3#) ("var") treemacs--propagate-new-icons "Metals-dark" "book-dark.png" (:background #2#) (:background #3#) ("book") "bug-dark.png" (:background #2#) (:background #3#) ("bug") "github-dark.png" (:background #2#) (:background #3#) ("github") "gitter-dark.png" (:background #2#) (:background #3#) ("gitter") "issue-opened-dark.png" (:background #2#) (:background #3#) ("issue-opened") "twitter-dark.png" (:background #2#) (:background #3#) ("twitter") "discord-dark.png" (:background #2#) (:background #3#) ("discord") "Metals-light" "book-light.png" (:background #2#) (:background #3#) ("book") "bug-light.png" (:background #2#) (:background #3#) ("bug") "github-light.png" (:background #2#) (:background #3#) ("github") "gitter-light.png" (:background #2#) (:background #3#) ("gitter") "issue-opened-light.png" (:background #2#) (:background #3#) ("issue-opened") "twitter-light.png" (:background #2#) (:background #3#) ("twitter") "discord-light.png" (:background #2#) (:background #3#) ("discord")] 18) (defvar treemacs-metals-leaf-state 'treemacs-metals-leaf-state) (byte-code "\301\302\"\210\303\304\"\207" [treemacs-metals-leaf-state treemacs-define-RET-action lsp-metals-treeview--exec-node-action treemacs-define-doubleclick-action #[128 "\300!\207" [lsp-metals-treeview--exec-node-action] 3 "\n\n(fn &rest ARGS)" nil]] 3) (defvar treemacs-icon-metals-node-open nil) (defvar treemacs-icon-metals-node-closed nil) (defvar treemacs-metals-node-open-state 'treemacs-metals-node-open-state) (defvar treemacs-metals-node-closed-state 'treemacs-metals-node-closed-state) (byte-code "\302\303\"\210\302\304 \"\210\302\305 \"\210\302\305\"\210\306\307\"\210\306 \307\"\207" [treemacs-metals-node-open-state treemacs-metals-node-closed-state add-to-list treemacs--open-node-states treemacs--closed-node-states treemacs-valid-button-states treemacs-define-RET-action lsp-metals-treeview--exec-node-action] 3) #@64 Expand treemacs nodes of type `metals-node'. (fn &optional _) (defalias 'treemacs-expand-metals-node #[256 "\3042\241\305\306 \307 \310\311$\211\205\312\313\"\262\211\204P\314\304\315C\211\203E:\204* C\311\n\204@\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205L\331\332!\262\"\210\333\334\"\335=\204\233\314\304\336\320\324\337\333\334\"\"\322\340#D\211\203\220:\204u C\311\n\204\213\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205\227\331\332!\262\"\210\341!\2620\207" [treemacs--saved-eldoc-display treemacs-eldoc-display treemacs--no-messages treemacs-pulse-on-failure --cl-block-__body__-- text-property-not-all point-at-bol point-at-eol button nil copy-marker t throw "There is nothing to do here." message "%s %s" propertize "[Treemacs]" face ((:inherit warning :weight bold)) format apply add-hook pre-command-hook treemacs--restore-eldoc-after-log treemacs--do-pulse treemacs-on-failure-pulse-face get-text-property :state treemacs-metals-node-closed-state "This function cannot expand a node of type '%s'." "%s" font-lock-type-face treemacs--do-expand-metals-node] 12 (#$ . 41098) nil]) #@71 Execute expansion of treemacs nodes of type `metals-node'. (fn NODE) (defalias 'treemacs--do-expand-metals-node #[257 "\306 \307\310\"T\307\311\"\312\313#\262\212`\313\211\314\315T\316\"\206\"e\317\316\"\206+d\320\321$\210\322 \210\323\324\325 \326 \316\313$\211\205C\327\330\"\262\307\331\"\262\330\"\212\211G\332\325 \330\"\315T\316\"\206^e\262Zb\210c\210\333!\266)\210\317\316\"\206wdb\210\334\335\336\nGY\204\222 @\f=\203\222 A =\204\226\337!\210\nHP@\313\203R\n\211\203Q\211@\340\307\311\"\341\342\"C\"\343\344\313\211\211\211\211&\345\346H#\210\f\203\334\f\211\347\347HBI\266\350U?\205\346\323\313\"\351\341\352\"\316\353\354\355\356\357\360\330\320=\361\310\311\362\341\342\"\331\363\341\364\"&\n\350U\205&>\203%\365\202&\336F\266\202\350\313\211\203H\211A\262\242\262\262T\262B\262\202,\266A\266\202\202\244\210\211\237\266\204\"c\210\366`\"\262\307\311\"\312\313#\211\203\251\211\211\367\nI\266\211\370H\211\203\221\211@\312\313#\211\367\fI\266A\266\202\202x\210\211\371H\211\203\244\211\211\372\372HBI\266\266\202\300\343\344\313\211\211 \313\211&\262\345\346H#\266\373\307\311\"!\210\374\307\331\"\313\"\210)\262)?\203\375\324\325 \326 \316\313$\211\205\352\327\330\"\262\332!\307\361\"\232\203\373\346y\210\266\207" [treemacs-dom buffer-read-only treemacs--indentation-string-cache treemacs--indentation-string-cache-key treemacs-indentation treemacs-indentation-string lsp-metals-treeview--get-children-current-node get-text-property :depth :path gethash nil put-text-property previous-single-property-change button next-single-property-change :state treemacs-metals-node-open-state beginning-of-line lsp-metals-treeview--icon text-property-not-all point-at-bol point-at-eol copy-marker t :node next-button delete-char apply concat "\n" treemacs--build-indentation-cache append lsp-get :nodeUri record treemacs-dom-node puthash 1 3 0 propertize :label (t) category default-button face font-lock-string-face :custom :parent :key :eldoc :tooltip "\n\n" count-lines 5 7 2 4 treemacs--reentry lsp-metals-treeview--on-node-collapsed treemacs-metals-node-closed-state treemacs-space-between-root-nodes treemacs-move-forward-on-expand] 44 (#$ . 42273)]) #@66 Collapse treemacs nodes of type `metals-node'. (fn &optional _) (defalias 'treemacs-collapse-metals-node #[256 "\3042\241\305\306 \307 \310\311$\211\205\312\313\"\262\211\204P\314\304\315C\211\203E:\204* C\311\n\204@\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205L\331\332!\262\"\210\333\334\"\335=\204\233\314\304\336\320\324\337\333\334\"\"\322\340#D\211\203\220:\204u C\311\n\204\213\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205\227\331\332!\262\"\210\341!\2620\207" [treemacs--saved-eldoc-display treemacs-eldoc-display treemacs--no-messages treemacs-pulse-on-failure --cl-block-__body__-- text-property-not-all point-at-bol point-at-eol button nil copy-marker t throw "There is nothing to do here." message "%s %s" propertize "[Treemacs]" face ((:inherit warning :weight bold)) format apply add-hook pre-command-hook treemacs--restore-eldoc-after-log treemacs--do-pulse treemacs-on-failure-pulse-face get-text-property :state treemacs-metals-node-open-state "This function cannot collapse a node of type '%s'." "%s" font-lock-type-face treemacs--do-collapse-metals-node] 12 (#$ . 44586) nil]) #@59 Collapse treemacs nodes of type `metals-node'. (fn NODE) (defalias 'treemacs--do-collapse-metals-node #[257 "\212\302\303\304\305 \306 \307\302$\211\205\310\311\"\262\312\313\"\262\302\"\212\211G\314\305 \311\"\315T\307\"\206/e\262Zb\210c\210\316!\266)\210\317\315T\307\"\206Ie\320\307\"\206Qd\321\322$\210\314\306 !\211\203p\312\323\"T\310\311\"\312\323\"\262U\204w\324 \266\202\323\320\307\"\206d\205\261\312\323\"\314\320\307\"\206\220d\311\"\211\203\257\312\323\"W\203\257\314\320\307\"\206\250d\311\"\262\202\222\262\211\203\315\325\315T\307\"\206\277e!\320\307\"\206\310d\262\202\316d|\266\312\326\"\327 \302#\211\330H\331H\211\203\363\211\211\332\333\332H\"I\266\210\211\203\334\335\"\210\211\330\302I\266\202\331H\211\203\211\211\332\333\332H\"I\266\266\336\312\313\"\311\"*\207" [buffer-read-only treemacs-dom nil lsp-metals-treeview--icon text-property-not-all point-at-bol point-at-eol button copy-marker t get-text-property :node next-button previous-single-property-change delete-char put-text-property next-single-property-change :state treemacs-metals-node-closed-state :depth delete-trailing-whitespace previous-button :path gethash 3 2 4 delete treemacs-walk-dom-exclusive #[257 "\301\302H\"\210\211\303H\211\211\304\305\304H\"I\266\211\306H\211\203+\211@\301\"\210A\266\202\202\210\211\211\304\307I\207" [treemacs-dom remhash 1 2 3 delete 7 nil] 9 "\n\n(fn IT)"] lsp-metals-treeview--on-node-collapsed] 12 (#$ . 45767)]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [treemacs-define-TAB-action treemacs-metals-node-open-state treemacs-collapse-metals-node treemacs-metals-node-closed-state treemacs-expand-metals-node] 3) (defvar treemacs-icon-metals-root-open (byte-code "\301\302\301\211\211\2038\211A\262\242\262\262\211\262\2038\303H\304\230\203+\301\262\2038\262\262T\262\202\266\211\262\211\305H\306\307\301#\207" [treemacs--themes nil 0 1 "Metals" 3 gethash root] 8)) (defvar treemacs-icon-metals-root-closed (byte-code "\301\302\301\211\211\2038\211A\262\242\262\262\211\262\2038\303H\304\230\203+\301\262\2038\262\262T\262\202\266\211\262\211\305H\306\307\301#\207" [treemacs--themes nil 0 1 "Metals" 3 gethash root] 8)) (defvar treemacs-metals-root-open-state 'treemacs-metals-root-open-state) (defvar treemacs-metals-root-closed-state 'treemacs-metals-root-closed-state) (byte-code "\302\303\"\210\302\304 \"\210\302\305 \"\210\302\305\"\207" [treemacs-metals-root-open-state treemacs-metals-root-closed-state add-to-list treemacs--open-node-states treemacs--closed-node-states treemacs-valid-button-states] 3) #@64 Expand treemacs nodes of type `metals-root'. (fn &optional _) (defalias 'treemacs-expand-metals-root #[256 "\3042\241\305\306 \307 \310\311$\211\205\312\313\"\262\211\204P\314\304\315C\211\203E:\204* C\311\n\204@\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205L\331\332!\262\"\210\333\334\"\335=\204\233\314\304\336\320\324\337\333\334\"\"\322\340#D\211\203\220:\204u C\311\n\204\213\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205\227\331\332!\262\"\210\341!\2620\207" [treemacs--saved-eldoc-display treemacs-eldoc-display treemacs--no-messages treemacs-pulse-on-failure --cl-block-__body__-- text-property-not-all point-at-bol point-at-eol button nil copy-marker t throw "There is nothing to do here." message "%s %s" propertize "[Treemacs]" face ((:inherit warning :weight bold)) format apply add-hook pre-command-hook treemacs--restore-eldoc-after-log treemacs--do-pulse treemacs-on-failure-pulse-face get-text-property :state treemacs-metals-root-closed-state "This function cannot expand a node of type '%s'." "%s" font-lock-type-face treemacs--do-expand-metals-root] 12 (#$ . 48463) nil]) #@71 Execute expansion of treemacs nodes of type `metals-root'. (fn NODE) (defalias 'treemacs--do-expand-metals-root #[257 "\306!\307\310\"T\307\311\"\312 \313#\262\212`\313\211\314\315T\316\"\206#e\317\316\"\206,d\320\321$\210\322 \210\212 G\323\324 \325\"\315T\316\"\206De\262Zb\210 c\210\326!\266)\317\316\"\206\\db\210\327\330\331\fGY\204y @==\203y A>=\204}\332!\210\fHP@\313\203;\n\211\203:\211@\333\307\311\"\334\335\"C\"\336\337\313\211\211\211\211&\340\341H #\210\f\203\303\f\211\342\342HBI\266\343U?\205\315\344\313\"\345\334\346\"\316\347\350\351\352\353\354\325\320\355!\356\310\311\357\334\335\"\360\361\334\362\"&\n\343U\205?\203\363\202\331F\266\202\343\313\211\2031\211A\262\242\262\262T\262B\262\202\266A\266\202\202\213\210\211\237\266\204\"c\210\364`\"\262\307\311\"\312 \313#\211\203\222\211\211\365\nI\266\211\366H\211\203z\211@\312 \313#\211\365\fI\266A\266\202\202a\210\211\367H\211\203\215\211\211\370\370HBI\266\266\202\251\336\337\313\211\211 \313\211&\262\340\341H #\266\371\307\311\"!\210)\262)@\203\335\372\324 \373 \316\313$\211\205\312\374\325\"\262\323!\307\356\"\232\203\333\341y\210\266\207" [lsp-metals-treeview--view-id treemacs-dom buffer-read-only treemacs-icon-metals-root-open treemacs--indentation-string-cache treemacs--indentation-string-cache-key lsp-metals-treeview--get-children get-text-property :depth :path gethash nil put-text-property previous-single-property-change button next-single-property-change :state treemacs-metals-root-open-state beginning-of-line next-button point-at-bol t delete-char apply concat "\n" treemacs--build-indentation-cache append lsp-get :nodeUri record treemacs-dom-node puthash 1 3 0 lsp-metals-treeview--icon propertize :label (t) category default-button face font-lock-keyword-face :custom lsp-metals-treeview--state :parent :key :node :eldoc :tooltip "\n\n" count-lines 5 7 2 4 treemacs--reentry text-property-not-all point-at-eol copy-marker treemacs-indentation treemacs-indentation-string treemacs-space-between-root-nodes treemacs-move-forward-on-expand] 44 (#$ . 49638)]) #@66 Collapse treemacs nodes of type `metals-root'. (fn &optional _) (defalias 'treemacs-collapse-metals-root #[256 "\3042\241\305\306 \307 \310\311$\211\205\312\313\"\262\211\204P\314\304\315C\211\203E:\204* C\311\n\204@\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205L\331\332!\262\"\210\333\334\"\335=\204\233\314\304\336\320\324\337\333\334\"\"\322\340#D\211\203\220:\204u C\311\n\204\213\316\317\320\321\322\323#\324\325\324\"!#\210\326\327\330\"\210 \205\227\331\332!\262\"\210\341!\2620\207" [treemacs--saved-eldoc-display treemacs-eldoc-display treemacs--no-messages treemacs-pulse-on-failure --cl-block-__body__-- text-property-not-all point-at-bol point-at-eol button nil copy-marker t throw "There is nothing to do here." message "%s %s" propertize "[Treemacs]" face ((:inherit warning :weight bold)) format apply add-hook pre-command-hook treemacs--restore-eldoc-after-log treemacs--do-pulse treemacs-on-failure-pulse-face get-text-property :state treemacs-metals-root-open-state "This function cannot collapse a node of type '%s'." "%s" font-lock-type-face treemacs--do-collapse-metals-root] 12 (#$ . 51840) nil]) #@59 Collapse treemacs nodes of type `metals-root'. (fn NODE) (defalias 'treemacs--do-collapse-metals-root #[257 "\212\303\212 G\304\305 \306\"\307T\310\"\206e\262Zb\210 c\210\311!\266)\312\307T\310\"\206-e\313\310\"\2065d\314\315$\210\304\316 !\211\203T\317\320\"T\321\306\"\317\320\"\262U\204[\322 \266\202\267\313\310\"\206cd\205\225\317\320\"\304\313\310\"\206td\306\"\211\203\223\317\320\"W\203\223\304\313\310\"\206\214d\306\"\262\202v\262\211\203\261\323\307T\310\"\206\243e!\313\310\"\206\254d\262\202\262d|\266\317\324\"\325\n\303#\211\326H\327H\211\203\327\211\211\330\331\330H\"I\266\210\211\203\353\332\333\"\210\211\326\303I\266\202\327H\211\203\377\211\211\330\331\330H\"I\266\266*\303\207" [buffer-read-only treemacs-icon-metals-root-closed treemacs-dom nil next-button point-at-bol t previous-single-property-change button delete-char put-text-property next-single-property-change :state treemacs-metals-root-closed-state point-at-eol get-text-property :depth copy-marker delete-trailing-whitespace previous-button :path gethash 3 2 4 delete treemacs-walk-dom-exclusive #[257 "\301\302H\"\210\211\303H\211\211\304\305\304H\"I\266\211\306H\211\203+\211@\301\"\210A\266\202\202\210\211\211\304\307I\207" [treemacs-dom remhash 1 2 3 delete 7 nil] 9 "\n\n(fn IT)"]] 12 (#$ . 53021)]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [treemacs-define-TAB-action treemacs-metals-root-open-state treemacs-collapse-metals-root treemacs-metals-root-closed-state treemacs-expand-metals-root] 3) #@16 (fn &rest _) (defalias 'treemacs-METALS-ROOT-extension #[128 "\306\307\310\311 !\312\n\313\314& c\210\315 \316\317\n!\f>\203!\n\320H\202\"\n #\266\321\311 !\322\323\324\325\326\327\330\331\332\n\312\330\nD\333\334\335\336&c\266)\306\207" [buffer-read-only lsp-metals-treeview--view-id lsp-metals-treeview--root-key treemacs-icon-metals-root-closed cl-struct-treemacs-project-tags treemacs--project-positions nil treemacs-project->create! :name lsp-metals-treeview--view-name :path :path-status extension point-marker puthash type-of 2 propertize button (t) category default-button face font-lock-type-face :custom t :key :depth 0 :project :state treemacs-metals-root-closed-state] 22 (#$ . 54603)]) #@53 Return the state of the treeview node. (fn INPUT0) (defalias 'lsp-metals-treeview--state #[257 "\302\303\"\211\203\n\207 \207" [treemacs-metals-node-closed-state treemacs-metals-leaf-state gethash "collapseState"] 4 (#$ . 55322)]) #@187 Display the Metals treeview window for the WORKSPACE (optional). If WORKSPACE is not specified obtain the current workspace for the file in the current buffer. (fn &optional WORKSPACE) (defalias 'lsp-metals-treeview #[256 "\211\206 \301\302 \"\211\203\303\304\"\207\305\306!\207" [lsp-metals-treeview--metals-server-id lsp-find-workspace buffer-file-name lsp-metals-treeview--show-window t message "Current buffer is not within Metals workspace"] 5 (#$ . 55564) nil]) #@47 Find the current buffer file in the treeview. (defalias 'lsp-metals-treeview-reveal #[0 "\301\302\303 \"\304\305\"\304\306\"\307\310 \"\211\205<\311\"\211\205:r\211q\210\312\313\314!\"\210\315 \211\2057\316`\"\210\317!\262)\262\207" [lsp-metals-treeview--metals-server-id lsp-request "metals/treeViewReveal" lsp--text-document-position-params gethash "viewId" "uriChain" lsp-find-workspace buffer-file-name lsp-metals-treeview--buffer-name mapc #[257 "\300!\211\205\301!b\210\302\303\304\"\305\"\207" [lsp-metals-treeview--find-node marker-position treemacs-update-node get-text-property :path t] 6 "\n\n(fn URI)"] reverse get-buffer-window set-window-point select-window] 9 (#$ . 56044) nil]) #@61 Debug helper function to display treemacs node information. (defalias 'lsp-metals-treeview--debug-node #[0 "\300\301 \302 \303\304$\211\205\305\306\"\262\307\310\311\312T\303\"\206e\313\303\"\206&d\"\314\315\"\314\316\"\314\317\"\314\320\"\211\205C\314\321\"\262\211\205\\\311\312T\303\"\206Se\313\303\"\206[d\"\262\314 \322\" \211\205m\314\323\"\262& \207" [text-property-not-all point-at-bol point-at-eol button nil copy-marker t message "Label: %s\nDepth: %s\nKey: %s\nPath: %s\nState: %s\nParent: %s\neldoc: %s\nMetals Item: %s" buffer-substring-no-properties previous-single-property-change next-single-property-change get-text-property :depth :key :path :state :parent :eldoc :node] 14 (#$ . 56762) nil]) (provide 'lsp-metals-treeview)