2727
2828(require 'dash )
2929(require 'lsp-mode )
30+ (require 'lsp-java )
3031(require 'dash-functional )
3132(require 'treemacs-extensions )
3233
@@ -80,28 +81,33 @@ PROJECT-URI, NODE-ID and PATH are the details for the current node."
8081(treemacs-define-leaf-node lsp-file treemacs-icon-java
8182 :ret-action 'lsp-java-treemacs--open-file )
8283
83- (defun lsp-java-treemacs--icon-path (rel-path )
84- " Get fullpath to `lsp-java-treemacs' icon.
85- REL-PATH rel path to the icon."
86- (f-join (f-dirname (or load-file-name buffer-file-name)) rel-path))
87-
88- (treemacs--setup-icon lsp-java-treemacs-jar
89- (lsp-java-treemacs--icon-path " icons/vscode/file_type_jar.png" ))
90- (treemacs--setup-icon treemacs-lsp-java-package
91- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_package.png" ))
92- (treemacs--setup-icon lsp-java-treemacs-package-opened
93- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_package_opened.png" ))
94- (treemacs--setup-icon treemacs-lsp-java-jar-folder
95- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_component.png" ))
96- (treemacs--setup-icon treemacs-lsp-java-jar-folder-opened
97- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_component_opened.png" ))
98- (treemacs--setup-icon treemacs-lsp-java-library-folder
99- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_library.png" ))
100- (treemacs--setup-icon treemacs-lsp-java-library-folder-opened
101- (lsp-java-treemacs--icon-path " icons/vscode/folder_type_library_opened.png" ))
102- (treemacs--setup-icon treemacs-lsp-java-class
103- (lsp-java-treemacs--icon-path " icons/vscode/file_type_class.png" )
104- " class" )
84+ (defmacro lsp-java-treemacs--setup-icon (var file-name &rest extensions )
85+ " Define VAR with its display property being the image created from FILE-NAME.
86+ Insert VAR into `treemacs-icon-hash' for each of the given file EXTENSIONS."
87+ (unless (treemacs--is-image-creation-impossible?)
88+ `(progn
89+ (defvar , var
90+ (let* ((image-unselected (treemacs--create-image (f-join (f-dirname (or load-file-name buffer-file-name)) , file-name )))
91+ (image-selected (treemacs--create-image (f-join (f-dirname (or load-file-name buffer-file-name)) , file-name ))))
92+ (treemacs--set-img-property image-selected :background treemacs--selected-icon-background)
93+ (treemacs--set-img-property image-unselected :background treemacs--not-selected-icon-background)
94+ (concat (propertize " "
95+ 'display image-unselected
96+ 'img-selected image-selected
97+ 'img-unselected image-unselected)
98+ " " )))
99+ (push , var treemacs--created-icons)
100+ (--each (quote , extensions ) (ht-set! treemacs-icons-hash it , var ))
101+ , var )))
102+
103+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-jar " icons/vscode/file_type_jar.png" )
104+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-package " icons/vscode/folder_type_package.png" )
105+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-package-opened " icons/vscode/folder_type_package_opened.png" )
106+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-jar-folder " icons/vscode/folder_type_component.png" )
107+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-jar-folder-opened " icons/vscode/folder_type_component_opened.png" )
108+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-library-folder " icons/vscode/folder_type_library.png" )
109+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-library-folder-opened " icons/vscode/folder_type_library_opened.png" )
110+ (lsp-java-treemacs--setup-icon lsp-java-treemacs-class " icons/vscode/file_type_class.png" " class" )
105111
106112(defmacro treemacs--lsp-node-or-folder ()
107113 " Extract common code from nodes."
@@ -135,16 +141,16 @@ REL-PATH rel path to the icon."
135141
136142(treemacs-define-expandable-node package
137143 :icon-open lsp-java-treemacs-package-opened
138- :icon-closed treemacs- lsp-java-package
144+ :icon-closed lsp-java-treemacs -package
139145 :query-function (lsp-java-treemacs--external-library-children
140146 (button-get btn :project-uri )
141147 (button-get btn :node-id )
142148 (button-get btn :node-path ))
143149 :render-action (treemacs--lsp-node-or-folder))
144150
145151(treemacs-define-expandable-node folder
146- :icon-open treemacs- lsp-java-jar-folder-opened
147- :icon-closed treemacs- lsp-java-jar-folder
152+ :icon-open lsp-java-treemacs -jar-folder-opened
153+ :icon-closed lsp-java-treemacs -jar-folder
148154 :query-function (lsp-java-treemacs--external-library-children
149155 (button-get btn :project-uri )
150156 (button-get btn :node-id )
@@ -159,8 +165,8 @@ REL-PATH rel path to the icon."
159165 :render-action (treemacs--lsp-node-or-folder))
160166
161167(treemacs-define-expandable-node external-library
162- :icon-open treemacs- lsp-java-library-folder-opened
163- :icon-closed treemacs- lsp-java-library-folder
168+ :icon-open lsp-java-treemacs -library-folder-opened
169+ :icon-closed lsp-java-treemacs -library-folder
164170 :query-function (-> btn
165171 (button-get :parent )
166172 (button-get :path )
@@ -222,7 +228,7 @@ ADDED and REMOVED are pointing which are the changed folders."
222228 (unless (eq 'visible (treemacs-current-visibility))
223229 (treemacs))
224230
225- (maphash (lambda (root-path workspace )
231+ (maphash (lambda (root-path _workspace )
226232 (unless (or (s-equals? (f-canonical root-path) (f-canonical lsp-java-workspace-dir))
227233 (s-equals? (f-canonical root-path) (f-canonical lsp-java-workspace-cache-dir)))
228234 (treemacs-do-add-project-to-workspace root-path (f-filename root-path))))
0 commit comments