emacs-lsp / lsp-treemacs Goto Github PK
View Code? Open in Web Editor NEWlsp-mode :heart: treemacs
License: GNU General Public License v3.0
lsp-mode :heart: treemacs
License: GNU General Public License v3.0
Hi, when I try to list errors in my Java file and do M-x lsp-treemacs-errors-list
, I can see this:
Debugger entered--Lisp error: (void-function lsp-diagnostic-severity)
lsp-diagnostic-severity(#<hash-table equal 6/65 0x2d839ad>)
lsp-treemacs--match-diagnostic-severity(#<hash-table equal 6/65 0x2d839ad>)
-some(lsp-treemacs--match-diagnostic-severity (#<hash-table equal 6/65 0x2d839ad>))
lsp-treemacs--diagnostics-match-selected-severity((#<hash-table equal 6/65 0x2d839ad>))
#f(compiled-function (input0) #<bytecode 0x2f7b30d>)(("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/retrieve/RetrieveRemoteProductsRequest.java" #<hash-table equal 6/65 0x2d839ad>))
-some(#f(compiled-function (input0) #<bytecode 0x2f7b30d>) (("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/retrieve/RetrieveRemoteProductsRequest.java" #<hash-table equal 6/65 0x2d839ad>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/bqs/HibernateSpatialHqlGeneratorTest.java" #<hash-table equal 6/65 0x2dab181> #<hash-table equal 6/65 0x2ed47e9>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/server2/model/majiic/NsiliServerTester.java" #<hash-table equal 5/65 0x2df5df9> #<hash-table equal 5/65 0x2e438f9> #<hash-table equal 5/65 0x2d815b1> #<hash-table equal 5/65 0x2deadc1>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/util/SyncUtil.java" #<hash-table equal 5/65 0x2e5b7a9>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/model/type/UCOAbsTimeType.java" #<hash-table equal 5/65 0x2e468dd>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/net/HttpHandlerTest.java" #<hash-table equal 6/65 0x2e4ace1> #<hash-table equal 6/65 0x2a56609>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/application/NsiliServer.java" #<hash-table equal 5/65 0x2e07e09> #<hash-table equal 5/65 0x2e99581> #<hash-table equal 5/65 0x2e96979> #<hash-table equal 6/65 0x2e2d505> #<hash-table equal 6/65 0x2e99a61> #<hash-table equal 6/65 0x2dfade5> #<hash-table equal 6/65 0x2df4d9d> #<hash-table equal 5/65 0x2cc54ad>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/UpdateRequestImpl.java" #<hash-table equal 5/65 0x2ee080d>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/model/type/EnumUserType.java" #<hash-table equal 5/65 0x2da92f9> #<hash-table equal 6/65 0x2ee8bb1> #<hash-table equal 6/65 0x2de959d> #<hash-table equal 5/65 0x2e510e5>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/net/TransferableFileTest.java" #<hash-table equal 6/65 0x2edfc29> #<hash-table equal 6/65 0x2f110c5>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/application/NsiliServlet.java" #<hash-table equal 6/65 0x2d71121> #<hash-table equal 6/65 0x2dfa5a5> #<hash-table equal 5/65 0x2e2b9e1> #<hash-table equal 6/65 0x2e4a49d> #<hash-table equal 6/65 0x2e7478d> #<hash-table equal 6/65 0x2eaa269> #<hash-table equal 6/65 0x2eb8275>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/LibraryManagerImpl.java" #<hash-table equal 6/65 0x2e4dc85>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/sync/Ifas12ExportFileTest.java" #<hash-table equal 5/65 0x2eeb439> #<hash-table equal 6/65 0x2dffe09> #<hash-table equal 5/65 0x2b0a5bd> #<hash-table equal 5/65 0x2ae5311> #<hash-table equal 5/65 0x2de0d79> #<hash-table equal 6/65 0x2e0a239> #<hash-table equal 5/65 0x2ea326d> #<hash-table equal 5/65 0x2d855a5> #<hash-table equal 5/65 0x2d3a04d> #<hash-table equal 5/65 0x2f03879> #<hash-table equal 6/65 0x2e7132d> #<hash-table equal 6/65 0x2e80f39> #<hash-table equal 5/65 0x2eddbc9> #<hash-table equal 5/65 0x2eea7b5> #<hash-table equal 5/65 0x2f083fd>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/sync/SynchronizationException.java" #<hash-table equal 5/65 0x2df2ea1>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/sync/Synchronizer.java" #<hash-table equal 6/65 0x2e7a3d5> #<hash-table equal 6/65 0x2ea3a89> #<hash-table equal 6/65 0x2ee5579> #<hash-table equal 5/65 0x2e684f5> #<hash-table equal 5/65 0x2f0a271> #<hash-table equal 5/65 0x2eabf35>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/util/PatternUtilTest.java" #<hash-table equal 6/65 0x2f0f8a9> #<hash-table equal 6/65 0x2f104a9> #<hash-table equal 6/65 0x2f11045>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/LibraryImpl.java" #<hash-table equal 5/65 0x2f0a295> #<hash-table equal 5/65 0x2f0aca5> #<hash-table equal 5/65 0x2f0ba11> #<hash-table equal 5/65 0x2f0c4a5> #<hash-table equal 5/65 0x2f0d0a5> #<hash-table equal 5/65 0x2f0dca5>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/order/DestinationHandler.java" #<hash-table equal 5/65 0x2f0487d> #<hash-table equal 5/65 0x2f0547d> #<hash-table equal 5/65 0x2f0607d>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/test/java/int_/nato/nc3a/nsili/izpack/actions/SetExtraVariablesPanelActionTest.java" #<hash-table equal 6/65 0x2ef77c1> #<hash-table equal 6/65 0x2ef7821> #<hash-table equal 6/65 0x2f021e5> #<hash-table equal 6/65 0x2f02c79>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/sync/SyncClientUsingCatalogMgrTest.java" #<hash-table equal 6/65 0x2ef67fd> #<hash-table equal 6/65 0x2ef8811> #<hash-table equal 6/65 0x2ef8871> #<hash-table equal 6/65 0x2efa819> #<hash-table equal 6/65 0x2efa859> #<hash-table equal 6/65 0x2efbf91> #<hash-table equal 6/65 0x2efc075> #<hash-table equal 6/65 0x2efd6ed> #<hash-table equal 6/65 0x2efdc55> #<hash-table equal 6/65 0x2efec79> #<hash-table equal 6/65 0x2eff879>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/util/ifas12/IFAS12HandlerForExport.java" #<hash-table equal 6/65 0x2eeebf1> #<hash-table equal 6/65 0x2ef06f1> #<hash-table equal 6/65 0x2ef07d5> #<hash-table equal 6/65 0x2ef1e4d> #<hash-table equal 6/65 0x2ef23b5> #<hash-table equal 6/65 0x2ef33d9> #<hash-table equal 6/65 0x2ef47dd>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/server2/application/NsiliServerTest.java" #<hash-table equal 5/65 0x2eebfd1> #<hash-table equal 5/65 0x2eec011> #<hash-table equal 5/65 0x2eed3cd> #<hash-table equal 5/65 0x2eed42d>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/main/java/int_/nato/nc3a/nsili/izpack/util/CreationMgrUserPasswordValidator.java" #<hash-table equal 5/65 0x2ee8c09>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/test/java/int_/nato/nc3a/nsili/izpack/util/SHAProcessorTest.java" #<hash-table equal 6/65 0x2ee4c2d> #<hash-table equal 6/65 0x2ee6031> #<hash-table equal 6/65 0x2ee6bcd>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/create/ChangeRequest.java" #<hash-table equal 5/65 0x2edfc49> #<hash-table equal 5/65 0x2ee1599> #<hash-table equal 5/65 0x2ee202d> #<hash-table equal 5/65 0x2ee2c2d> #<hash-table equal 5/65 0x2ee382d>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/query/BQSStandingQueryDAO.java" #<hash-table equal 6/65 0x2ede82d> #<hash-table equal 6/65 0x2edf42d>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/main/java/int_/nato/nc3a/nsili/izpack/panels/ORBInitialPortSetupPanel.java" #<hash-table equal 5/65 0x2edcc29>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/RequestImpl.java" #<hash-table equal 5/65 0x2ed484d> #<hash-table equal 5/65 0x2ed6a99> #<hash-table equal 5/65 0x2ed7001> #<hash-table equal 5/65 0x2ed8025> #<hash-table equal 5/65 0x2ed9429> #<hash-table equal 5/65 0x2eda029> #<hash-table equal 5/65 0x2edac29> #<hash-table equal 5/65 0x2edb829>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/BravoToAlphaDAGPostProcessor.java" #<hash-table equal 6/65 0x2ec8f9d> #<hash-table equal 6/65 0x2ec8fdd> #<hash-table equal 6/65 0x2ecc421> #<hash-table equal 6/65 0x2ecc481> #<hash-table equal 6/65 0x2ecddd1> #<hash-table equal 6/65 0x2ece865> #<hash-table equal 6/65 0x2ecf465> #<hash-table equal 6/65 0x2ed0065> #<hash-table equal 6/65 0x2ed0ca5> #<hash-table equal 6/65 0x2ed1041> #<hash-table equal 6/65 0x2ed1c65>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/server2/model/majiic/DatabaseAccessTester.java" #<hash-table equal 6/65 0x2ebc3d5> #<hash-table equal 6/65 0x2ebd819> #<hash-table equal 6/65 0x2ebdbb5> #<hash-table equal 5/65 0x2ebe7d9> #<hash-table equal 5/65 0x2ebf795> #<hash-table equal 5/65 0x2ebf7f5> #<hash-table equal 5/65 0x2ec0f99> #<hash-table equal 5/65 0x2ec0fd9> #<hash-table equal 5/65 0x2ec2795> #<hash-table equal 5/65 0x2ec27f5> #<hash-table equal 6/65 0x2ec4145> #<hash-table equal 5/65 0x2ec4bd9> #<hash-table equal 6/65 0x2ec57d9> #<hash-table equal 6/65 0x2ec63d9> #<hash-table equal 6/65 0x2ec7019>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/create/StorageException.java" #<hash-table equal 5/65 0x2eb9e75>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/create/filehandler/BaseFileHandler.java" #<hash-table equal 5/65 0x2eb8e79>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/util/FormatType.java" #<hash-table equal 5/65 0x2eb6255> #<hash-table equal 5/65 0x2eb8191>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/model/type/UCONameNameType.java" #<hash-table equal 5/65 0x2eb3a75> #<hash-table equal 6/65 0x2eb4a31> #<hash-table equal 6/65 0x2eb4a91>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/sync/SyncClientUsingHttpPost.java" #<hash-table equal 5/65 0x2ead271> #<hash-table equal 6/65 0x2eade71> #<hash-table equal 6/65 0x2eaea71> #<hash-table equal 5/65 0x2eaf60d> #<hash-table equal 5/65 0x2eaf66d> #<hash-table equal 5/65 0x2eb0e11> #<hash-table equal 5/65 0x2eb0e51> #<hash-table equal 5/65 0x2eb2d8d>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/util/ifas12/IFAS12Handler.java" #<hash-table equal 6/65 0x2eabe71>) ("/home/luke/work/projects/bruc-testcases/src/test/java/int_/nato/ncia/majiic/testing/testng/cucumber/GAOISteps.java" #<hash-table equal 6/65 0x2ea50e1> #<hash-table equal 6/65 0x2ea5649> #<hash-table equal 6/65 0x2ea666d> #<hash-table equal 6/65 0x2ea726d> #<hash-table equal 6/65 0x2ea7e6d> #<hash-table equal 6/65 0x2ea8a6d> #<hash-table equal 6/65 0x2ea966d> #<hash-table equal 6/65 0x2eaa209>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/util/SyncUtilTest.java" #<hash-table equal 6/65 0x2ea3a29>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/security/auth/RolenamePrincipalTest.java" #<hash-table equal 6/65 0x2e995a1>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/security/auth/PropertyFileLoginModule.java" #<hash-table equal 5/65 0x2e99aa9> #<hash-table equal 6/65 0x2e99e45> #<hash-table equal 5/65 0x2e9aa69> #<hash-table equal 5/65 0x2e9ba25> #<hash-table equal 5/65 0x2e9ba85> #<hash-table equal 5/65 0x2e9d229> #<hash-table equal 5/65 0x2e9d269> #<hash-table equal 5/65 0x2e9ea25> #<hash-table equal 5/65 0x2e9ea85> #<hash-table equal 5/65 0x2ea03d5> #<hash-table equal 5/65 0x2ea0e69>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/main/java/int_/nato/nc3a/nsili/izpack/panels/XHTMLInfoPanel.java" #<hash-table equal 5/65 0x2e96d19>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/create/filehandler/VideoFileHandler.java" #<hash-table equal 5/65 0x2e94979> #<hash-table equal 5/65 0x2e95535>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/utils/CORBASerializer.java" #<hash-table equal 5/65 0x2e8b3e9> #<hash-table equal 5/65 0x2e8b951> #<hash-table equal 6/65 0x2e8c975> #<hash-table equal 5/65 0x2e8d575> #<hash-table equal 5/65 0x2e8e175> #<hash-table equal 5/65 0x2e8ed75> #<hash-table equal 5/65 0x2e8f975> #<hash-table equal 6/65 0x2e90511> #<hash-table equal 5/65 0x2e90571> #<hash-table equal 5/65 0x2e91d15> #<hash-table equal 5/65 0x2e91d55> #<hash-table equal 5/65 0x2e93c91>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/utils/NodeUserType.java" #<hash-table equal 6/65 0x2e84379> #<hash-table equal 5/65 0x2e843d9> #<hash-table equal 5/65 0x2e873a9> #<hash-table equal 5/65 0x2e873e9> #<hash-table equal 5/65 0x2e88ba5>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/server2/query/QueryResultListTest.java" #<hash-table equal 6/65 0x2e80f5d> #<hash-table equal 6/65 0x2e80f9d> #<hash-table equal 5/65 0x2e826d5> #<hash-table equal 5/65 0x2e827b9>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/util/FormatInfoTest.java" #<hash-table equal 6/65 0x2e7d395> #<hash-table equal 6/65 0x2e7e7bd> #<hash-table equal 6/65 0x2e7f779>) ("/home/luke/work/projects/csd-ipl/ipl/src/test/java/int_/nato/nc3a/nsili/sync/SyncClientUsingHttpPostTest.java" #<hash-table equal 6/65 0x2e7bb59> #<hash-table equal 6/65 0x2e7bb99>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/server2/api/OrderRequestImpl.java" #<hash-table equal 5/65 0x2e77f91> #<hash-table equal 6/65 0x2e793b9> #<hash-table equal 5/65 0x2e7a375>) ("/home/luke/work/projects/csd-ipl/ipl/src/main/java/int_/nato/nc3a/nsili/util/ImprovedThreadLocal.java" #<hash-table equal 5/65 0x2e76795>) ("/home/luke/work/projects/csd-ipl/installer/izpack-panels/src/main/java/int_/nato/nc3a/nsili/izpack/panels/CheckSelectedJVM.java" #<hash-table equal 5/65 0x2e747cd>) ...))
#f(compiled-function (folder-name) #<bytecode 0x2f7b2f9>)("/home/luke/work/projects/csd-ipl")
-filter(#f(compiled-function (folder-name) #<bytecode 0x2f7b2f9>) ("/home/luke/work/projects/csd-ipl" "/home/luke/work/projects/bruc-testcases"))
lsp-treemacs--root-folders()
treemacs--do-expand-lsp-error-list(#<marker at 1 in *LSP Error List*>)
treemacs-LSP-ERROR-LIST-extension()
lsp-treemacs-errors-list()
funcall-interactively(lsp-treemacs-errors-list)
call-interactively(lsp-treemacs-errors-list nil nil)
command-execute(lsp-treemacs-errors-list)
I checked and indeed - there is no lsp-diagnostic-severity
function in (my) version of LSP...
Any help would be appreciated!
I am observing that the contents of lsp-treemacs-symbols window often disappears (or parts of it disappear) as I am editing the code, I am assuming due to the fact that while I am typing, the code is not always in a syntactically valid state. (gif illustration attached)
If this is what leads to breakage, it would be far less intrusive for lsp-treemacs-symbol to simply keep the last known good set of symbols (maybe with a visual indicator that current state cannot be parsed).
I am getting the errors void variable/function on these symbols,
lap-treemacs-symbols-goto-symbol
lsp-treemacs-define-action
I think there is something wrong with the last two commits?
Is it currently possible to set the max width of fn def strings? When I expand, fn defs using lsp-treemacs
, they are limited to a max of 60 characters. This leads to confusion and cripples the ability to discern full signatures or distinguish between long function names that overrun the limit.
I notice that both lsp-treemacs
and lsp-ui-imenu
both have this 60 char limitation. Is this a configurable var? Do you know how to set this?
Thanks
Any plans to add a "collapse when there's no errors around" mode to lsp-treemacs? I don't like the fact that it takes up precious screen real estate all the time.
Actually a better approach would be to make it configurable about when it should pop up. I'd ideally want to make it pop up only if I've been idle for 2 seconds and there's some useful information to show.
the lsp-treemacs-references window opened with nodes collapsed, but I need it auto expanded. is there an option?
It would be immensely helpful if the current file's errors would be visible first in the errors list; or, only the current file's errors, as an option.
While clicking the item in lsp-treemacs windows, I got this error:
Debugger entered--Lisp error: (void-function nil)
nil()
treemacs-single-click-expand-action((mouse-1 (#<window 9 on *LSP Symbols List*> 30 (80 . 42) 85997134 nil 30 (9 . 2) nil (0 . 8) (8 . 15))))
funcall-interactively(treemacs-single-click-expand-action (mouse-1 (#<window 9 on *LSP Symbols List*> 30 (80 . 42) 85997134 nil 30 (9 . 2) nil (0 . 8) (8 . 15))))
call-interactively(treemacs-single-click-expand-action nil nil)
#f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x408f6815>)(treemacs-single-click-expand-action nil nil nil)
ad-Advice-command-execute(#f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x408f6815>) treemacs-single-click-expand-action)
apply(ad-Advice-command-execute #f(compiled-function (cmd &optional record-flag keys special) "Execute CMD as an editor command.\nCMD must be a symbol that satisfies the `commandp' predicate.\nOptional second arg RECORD-FLAG non-nil\nmeans unconditionally put this command in the variable `command-history'.\nOtherwise, that is done only if an arg is read using the minibuffer.\nThe argument KEYS specifies the value to use instead of (this-command-keys)\nwhen reading the arguments; if it is nil, (this-command-keys) is used.\nThe argument SPECIAL, if non-nil, means that this command is executing\na special event, so ignore the prefix argument and don't clear it." #<bytecode 0x408f6815>) treemacs-single-click-expand-action)
command-execute(treemacs-single-click-expand-action)
Thanks for the excellent work!
Is there any possible to show function signature rather than just function name in lsp-treemacs, or provide an option to control it? I found the signature is more easily to distinguish than only a name.
After you have called M-x lsp-treemacs-symbols
say 10 times, lsp-treemacs--update
is called 10 times every second, which can cause emacs ui itself to freeze.
This issue is the following of #64
On windows 10, with latest lsp-treemacs
, the command lsp-treemacs-error-list
does return a tree,
but unfolding items return nothing, whereas lsp-ui-flycheck-list
does return correctly the errors.
All other lsp-treemacs
commands appear to work well
When I try to execute lsp-treemacs always return the same error:
defvar: Symbol’s function definition is void: treemacs-get-icon-value
the reference window's key binding `q', which is treemacs-quit, just bury the buffer not killing the window, inconsistent with other window like symbols, and somewhat annoying. is there an option or how can I do it?
Thank you for this extension, I am very excited to use it!
See my issue above. This could be a problem with my configuration but I'm not really sure where to look. I've simply enabled lsp-treemacs
using use-package
, as directed:
(use-package lsp-treemacs :commands lsp-treemacs-errors-list)
I see the correct warning / error count, just not the actual files and errors. Please advise how to debug the issue.
Edit:
Some info: It is a Rust project. I am using treemacs, projectile, lsp-mode, and flycheck, not flymake
I experience this issue occasionally. After I call lsp-treemacs-call-hierarchy
to try to check the call hierarchy of a method, emacs frozons immediately. When this issue occur, the emacs cpu usage increases to 15% and emacs keeps frozon. I have kill emacs manually. My emacs version is 26.1 the version with the debian 10. Thanks!
Whenever I use lsp-treemacs, or lsp-mode for a scala buffer, I get this error:
Symbol’s function definition is void: make-treemacs-theme.
After disabling dap-mode and lsp-treemacs, I get this one trying to use lsp-mode:
File mode specification error: (void-function make-treemacs-theme)
lsp-treemacs version 20200811.1646. lsp-mode: 20200812.1516. treemacs: 20200802.819.
Hi,
This should be a feature request.
lsp-treemacs is convenient when writing and debugging code. But if I run a code (python in my case) by ", c c", then the new "complication" buffer is at the bottom of the window and across the whole window.
If I want to maximize my code file buffer, by "SPC w m" it only affect the buffers created by treemacs, the "complication" buffer still there. So I have to switch to "complication" buffer and delete the window.
As running the code happens very often, it is a little noisy. I hope you can add the feature that treemacs can control the "complication" buffer or some other kinds of new buffer that not created by treemacs as well.
This is what I always see on my modeline/when opening lsp-treemacs-error-list. It never shows any errors if I purposefully make them and still shows this empty view if there's no issues.
Also, when I select the folder, for whatever reason it opens dired.
If it matters, I'm using DOOM emacs with java & jdtls.
When I hit TAB on node in lsp-treemacs-call-hierarchy
window I get this error.
Debug on error output:
Debugger entered--Lisp error: (void-function treemacs--maybe-move-forward)
treemacs--maybe-move-forward()
treemacs--do-expand-node(#<marker (moves after insertion) at 368 in *Call Hierarchy*>)
treemacs-expand-node(nil)
treemacs-TAB-action(nil)
funcall-interactively(treemacs-TAB-action nil)
call-interactively(treemacs-TAB-action nil nil)
command-execute(treemacs-TAB-action)
** Describe the bug **
(lsp-treemacs-errors-list) and (lsp-treemacs-java-deps-list) commands displays
a blank buffer inside LSP Error List.
Sometimes it shows a message that there is an error in calling the command :
---------------------------------------
It looks like you are trying to run treemacs. Would you like some help with that?
You have called treemacs-mode, but that is just the major mode for treemacs'
buffers, it is not meant to be used manually.
Instead you should call a function like
* treemacs,
* treemacs-select-window, or
* treemacs-add-and-display-current-project
You can safely delete this buffer.
---------------------------------------
\
\
____
/ \
| |
@ @
| |
|| |/
|| ||
|\_/|
\___/
** To Reproduce **
using treemacs package treemacs-20191205.557 will produce the above errors
but the old treemacs package will not produce the above erros.
like using treemacs package treemacs-20191121.626 will not produce the above errors
** Expected behavior **
I think the lsp-treemacs should be updated.
because it uses the old version of the treemacs package
** Logs **
Messages buffer :
[Treemacs] Error on highlight, this shouldn't happen: (wrong-type-argument overlayp nil)
** system **
Linux Debian
GNU Emacs 26.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.12)
GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.12)
GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.11)
lsp-treemacs 20191202.1647
lsp-java 20191115.1712
lsp-mode 20191205.1708
lsp-ui 20191202.2004
I'am new to emacs and I'am studying it . I am trying to use treemacs with typescript ,js files. Treemacs
it works well in the vision of the project but if I ask it to show me the variables and functions of a react class it returns "No symbol information". To see the variables and functions of a react class I use lsp-treemacs-symbols. So before I go to the project using treemacs-switch-workspace and then I do lsp-treemacs-symbols but on every class I go I obtain always No symbol information.
Is there a guide to use tremmacs symbols with react and typescript ?
This error is printed at Emacs initialization.
Backtrace:
Lisp error: (void-variable lsp-treemacs--make-ref-item)
byte-code("\306\010\307\011!\310\311\n!\312\001!\211G\313\013\002^\314]\f\003^\314]\315\316\006\006%\210\317\320\321\322\005\323\321\324\015T\"\325\326##!\327\004\330\006\007\331\332\333\334\335\336\337\340\006\020!\341\"\342\343\344&\006\257\n\266\203$\207" [lsp-treemacs--make-ref-item filename start start-character end-character start-line lsp-defun (&Range :start (start &as &Position :line start-line :character start-character) :end (&Position :character end-character)) "Return a xref-item from a RANGE in FILENAME." lsp--position-to-point lsp-treemacs--extract-line add-face-text-property 0 highlight t :label s-trim format "%s %s" propertize "%s line" face lsp-details-face :key :point :icon-literal "" :ret-action make-byte-code 128 "\302\011!\210\300b\210\303\304!\207" vconcat vector [filename lsp-treemacs--open-file-in-mru run-hooks xref-after-jump-hook] 3 "\n\n(fn &rest _)" nil] 23)
require(lsp-treemacs nil t)
(not (require (quote lsp-treemacs) nil t))
(if (not (require (quote lsp-treemacs) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote lsp-treemacs)) :error) (condition-case err (progn (progn (req-package-handle-loading (quote (lsp-treemacs nil)) (function (lambda nil nil))) (req-package-loaded (quote (lsp-treemacs nil)))) t) ((debug error) (funcall use-package--warning5 :config err))))
(progn (condition-case err (progn) ((debug error) (funcall use-package--warning5 :init err))) (if (not (require (quote lsp-treemacs) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote lsp-treemacs)) :error) (condition-case err (progn (progn (req-package-handle-loading (quote (lsp-treemacs nil)) (function (lambda nil nil))) (req-package-loaded (quote (lsp-treemacs nil)))) t) ((debug error) (funcall use-package--warning5 :config err)))))
(condition-case err (progn (condition-case err (progn) ((debug error) (funcall use-package--warning5 :init err))) (if (not (require (quote lsp-treemacs) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote lsp-treemacs)) :error) (condition-case err (progn (progn (req-package-handle-loading (quote ...) (function ...)) (req-package-loaded (quote ...))) t) ((debug error) (funcall use-package--warning5 :config err))))) ((debug error) (funcall use-package--warning5 :catch err)))
(progn (defvar use-package--warning5 (function (lambda (keyword err) (let ((msg (format "%s/%s: %s" ... keyword ...))) (display-warning (quote use-package) msg :error))))) (condition-case err (progn (condition-case err (progn) ((debug error) (funcall use-package--warning5 :init err))) (if (not (require (quote lsp-treemacs) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote lsp-treemacs)) :error) (condition-case err (progn (progn (req-package-handle-loading ... ...) (req-package-loaded ...)) t) ((debug error) (funcall use-package--warning5 :config err))))) ((debug error) (funcall use-package--warning5 :catch err))))
eval((progn (defvar use-package--warning5 (function (lambda (keyword err) (let ((msg ...)) (display-warning (quote use-package) msg :error))))) (condition-case err (progn (condition-case err (progn) ((debug error) (funcall use-package--warning5 :init err))) (if (not (require (quote lsp-treemacs) nil t)) (display-warning (quote use-package) (format "Cannot load %s" (quote lsp-treemacs)) :error) (condition-case err (progn (progn ... ...) t) ((debug error) (funcall use-package--warning5 :config err))))) ((debug error) (funcall use-package--warning5 :catch err)))))
req-package-eval-form((use-package lsp-treemacs :init (progn) :config (progn (req-package-handle-loading (quote (lsp-treemacs nil)) (lambda nil nil)) (req-package-loaded (quote (lsp-treemacs nil))))))
(lambda nil (req-package-eval-form EVAL))()
funcall((lambda nil (req-package-eval-form EVAL)))
(condition-case e (funcall f) ((debug error) (req-package--log-error (format "Unable to load package %s -- %s" pkg e))))
req-package-handle-loading((lsp-treemacs nil) (lambda nil (req-package-eval-form EVAL)))
(let* ((DEFAULT (req-package-gen-eval pkg (list (quote progn)) (req-package-patch-config pkg nil) nil)) (EVAL (gethash pkg req-package-evals DEFAULT)) (PKG pkg)) (req-package-handle-loading PKG (function (lambda nil (req-package-eval-form EVAL)))))
req-package-eval((lsp-treemacs nil))
(progn (puthash key -1 req-package-deps-left) (req-package-eval key))
(if (equal (gethash key req-package-deps-left 0) 0) (progn (puthash key -1 req-package-deps-left) (req-package-eval key)))
(lambda (key value) (if (equal (gethash key req-package-deps-left 0) 0) (progn (puthash key -1 req-package-deps-left) (req-package-eval key))))((lsp-treemacs nil) 0)
maphash((lambda (key value) (if (equal (gethash key req-package-deps-left 0) 0) (progn (puthash key -1 req-package-deps-left) (req-package-eval key)))) #<hash-table equal 9/200 0x11c0529>)
req-package-finish()
eval-buffer(#<buffer *load*-770573> nil "/home/user/.emacs.d/req-packages.el" nil t) ; Reading at buffer position 2926
load-with-code-conversion("/home/user/.emacs.d/req-packages.el" "/home/user/.emacs.d/req-packages.el" nil nil)
load("~/.emacs.d/req-packages")
eval-buffer(#<buffer *load*> nil "/home/user/.emacs" nil t) ; Reading at buffer position 2670
load-with-code-conversion("/home/user/.emacs" "/home/user/.emacs" t t)
load("~/.emacs" t t)
#f(compiled-function () #<bytecode 0x1e0f4d>)()
command-line()
normal-top-level()
Did you mean to redefine lsp-treemacs--symbol-icon
in lsp-treemacs.el
?
The second defun
does not display icons for me, but the first one works fine (at least, it displays the icons properly, but indentation seems to be lacking for child nodes... not sure if this is related).
This will make lsp-mode/treemacs solution feel more complete/IDE-ish.
Hi, I find there is no lsp-treemacs-symbols-list
in lsp-treemacs.el
, only has lsp-treemacs-symbols
.
However, in README, there is lsp-treemacs-symbols-list
instead of lsp-treemacs-symbols
. I guess lsp-treemacs-symbols-list
is replaced by lsp-treemacs-symbols
, right?
Thank you.
we have to rewrite it to use lsp-treemacs-render as well.
lsp-treemacs-symbols
allows folding and unfolding nodes. However, after the next refresh cycle, all folding information is lost and the modified nodes go back to their normal, unfolded states. That is especially an issue for dap-mode, where losing variable folding is annoying.
This could be implemented as follows:
treemacs-TAB-COMMAND
into a hash tableGarbage-collecting the hash-table could be done by recording the last usage cycle for each mapped node, dropping all nodes that were unused for some (configurable) number of cycles. This has the advantage that, for example, deleting a class and undoing that would restore its fold state. When moving a class into a new namespace though, that wouldn't be the case anymore.
I'd like to hear feedback on my approach, and to then implement it in upstream treemacs.
M-x lsp-treemacs-quick-fix hangs in session have jdtls with xmlls or html-ls servers
lspWorkspace 3/1/1 /home/myLSP
WelcomeUserAction.java 3/1/1 web3/src/com/mkyong/user/action/
[Java] Java: The value of the field WelcomeUserAction.usernamex is not used (9:16)
[Java] Java: username cannot be resolved to a variable (12:9)
[Java] Java: username cannot be resolved or is not a field (16:7)
[Java] Java: username cannot be resolved (21:6)
[Java] Java: TODO Auto-generated method stub (30:5)
the result of lsp-log buffer is
Nov 23, 2019 04:53:01 org.eclipse.lsp4j.jsonrpc.RemoteEndpoint fallbackResponseError()
Message: Internal error: java.lang.NullPointerException
java.util.concurrent.CompletionException: java.lang.NullPointerException
at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:314)
at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:319)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:645)
at java.base/java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:479)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
Caused by: java.lang.NullPointerException
at org.eclipse.lsp4xml.commons.LanguageModelCache.get(LanguageModelCache.java:56)
at org.eclipse.lsp4xml.XMLTextDocumentService.getXMLDocument(XMLTextDocumentService.java:182)
at org.eclipse.lsp4xml.XMLTextDocumentService.lambda$14(XMLTextDocumentService.java:338)
at java.base/java.util.concurrent.CompletableFuture$UniApply.tryFire(CompletableFuture.java:642)
... 6 more
==============================
M-x lsp-describe-session
the result is
-[+] error.jsp |
-[+] Capabilities-[+] pom.xml |
-[+] Capabilities-[-] jdtls:16368 |-[-] Buffers |
-[+] WelcomeUserAction.javathe temp solution is to kill xmlls and html-ls buffers
or kill the processes
16446 0.0 1.1 16:04 00:01 node /usr/local/bin/html-languageserver --stdio
16409 0.4 1.3 16:04 00:11 /usr/bin/java -jar /rmbxz/.emacs.d/lsp4xml/org.eclipse.lsp4xml-0.3.0-uber.jar
==============================
Linux Debian
Emacs GNU Emacs 26.1 (build 2, x86_64-pc-linux-gnu, GTK+ Version 3.24.11)
the latest lsp-treemacs
Hi,
I'm using lsp-treemacs and it added icons which I don't use at all in regular treemacs.
How can I remove the icons and not use them?
Thanks!
All packages are recompiled according to instructions about using plists.
Execute M-x lsp-treemacs-java-deps-list
:
condition-case: Wrong type argument: hash-table-p, (:name "container-utils" :path "/container-utils" :uri "file:/home/..." :kind 2)
I am using doom emacs and I installed lsp-treemacs using M-x Package-install
after running lsp-treemacs-symbols or any other lsp-treemacs app it gives me this error Error processing message (void-function lsp-render-symbol).
Is there a special reason why this is hard-coded? I have very wide screen and would prefer customizing this to have it on the left
or right
side instead.
original issue: doomemacs/themes#500
looks like this:
should look like this:
the problem is not present until lsp-mode
is enabled.
note: the discussion here picks up where we left off in what turned out to be an unrelated lsp-treemacs
issue: #66
The latest lsp-treemacs commits seem to break compatibility with lsp-mode 6.3.1 version:
bf05453
90754e4
I am only a light lsp-treemacs user so I did not notice the above immediately, but then came along 5d3f7b4, at which point package load broke, presumably due to lsp-defun
being unavailable.
Maybe tagging last-compatible-with-6.3.1 commit to melpa-stable would be a good idea?
Thanks,
collapsed
and expanded
icons are not used. The unicode chars are hard-coded.
Support all-the-icons
. The images are not displayed correctly on my MacBook. They look too big as the same as in treemacs
.
I made a new theme in
https://github.com/seagle0128/.emacs.d/blob/master/lisp/init-lsp.el#L157, which is similar in doom-themes-ext-treemacs.
I can't use any of lsp-treemacs-errors-list
, lsp-treemacs-symbols
, or lsp-treemacs-java-deps-list
because every time I do I get:
autoload-do-load: Symbol’s value as variable is void: lsp-error-list
I am running the latest MELPA packages for all of lsp-mode, lsp-java and lsp-treemacs.
This is my LSP setup:
(use-package lsp-mode :ensure t)
(use-package hydra :ensure t)
(use-package company-lsp :ensure t :after lsp-mode)
(use-package lsp-ui :ensure t :after lsp-mode)
(use-package lsp-java :ensure t :after lsp-mode
:config (add-hook 'java-mode-hook 'lsp))
(use-package lsp-treemacs :ensure t :after lsp-mode
:commands lsp-treemacs-errors-list)
(use-package dap-mode
:ensure t :after lsp-mode
:config
(dap-mode t)
(dap-ui-mode t))
(use-package dap-java :after (lsp-java))
(add-hook 'java-mode-hook 'flycheck-mode)
How do I select LSP symbol list or LSP error list using the keyboard? Treemacs do provide treemacs-select-window. Is there an equivalent function I can use with respect LSP treemacs?
lsp-treemacs-quick-fix
is very nice. Would be even more convenient to apply all quick fixes from the code buffer without having to open the lsp-treemacs-errors-list
and step through each error - is this possible?
Thank you!
Hello,
If I intentionally introduce some syntax errors in my java source, the language server detects
them instantly and I find them correctly reported in lsp-ui-flycheck-list
buffer.
However, nothing shows up with lsp-treemacs-error-list
and no errors seem to occur.
Other lsp-treemacs
commands, like lsp-treemacs-symbols
, work well.
My system is windows 10
, emacs 27.1
run under mingw64
with all lsp packages and dependencies updated right now.
When an option from lsp-treemacs is chosen (for example open references file), it does not close the lsp-treemacs buffer, it just goes to the file and keep the buffer open.
Can we add some configuration/option to enable this behavior?
For example focus changes causes the list of symbols to be reordered, but also navigating around in the source code. It would be nice to have it sorted alphabetically.
The screenshot of Java errors looks great; I'd love to see the same thing for my C++ code but the "LSP Errors View" window never shows anything - it is empty, regardless of how many errors I inject into source code. flymake displays them... treemacs does not.
I could not find any documentation explaining how to configure this, but I did run (lsp-treemacs-sync-mode 1)
before lsp-treemacs-errors-list
Any reason why this is commented?
;; ;;;###autoload
(defun lsp-treemacs-symbols ()
If I set the lsp-treemacs-theme
to new theme Iconless
, pressing the tab key on the top-level entry of the LSP Errors View results in a Wrong type argument: char-or-string-p, nil
and the entry is not expanded. The stack trace shows the following:
Debugger entered--Lisp error: (wrong-type-argument char-or-string-p nil)
treemacs--do-expand-lsp-projects(#<marker (moves after insertion) at 13 in *LSP Error List*>)
treemacs-expand-lsp-projects(nil)
treemacs-TAB-action(nil)
funcall-interactively(treemacs-TAB-action nil)
call-interactively(treemacs-TAB-action nil nil)
command-execute(treemacs-TAB-action)
If I set the theme back to Default
again (via Erase Customization
), kill the LSP Errors View and display the view again, I get the same error. If I then restart Emacs, still using theme Default
, display the LSP Errors View again and press the tab key on the top-level entry, no error is raised and the entry is expanded.
I tested this in Spacemacs develop branch, commit c4ad14a
, dated Sunday December 20 2020, using a Python file and the pyls backend.
This would be consistent with upstream's treemacs
function.
(I'm discovering the treemacs as well as lsp parts of emacs, and they all look great! just have a few weirdnesses to hammer out and… :))
I use LSP with Haskell Language Server, and the request for workspace/symbols returns also the imports under kind 2
as defined in the LSP standard.
As these imports can be numerous, it gets complex having the lsp-treemacs-symbols panel open all the time as I use to have it under treemacs itself, and it is super verbose and you have to go to that panel and scroll until getting to the actual interesting symbols.
I don't think it would be right to remove the imports directly as they are part of the standard, but I think that it would be nice if a variable could be set that filters out specific SymbolKind
s.
In this specific use case, I would like to filter out returned values of SymbolKind == 2
.
With some guidance I can try to implement this, although I'm not an expert elisper.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.