Most of these lsp packages are already in `lsp-client-packages`, which
lsp-mode will eagerly load the first time `lsp-mode` is activated, so we
don't need to do it ourselves, except in cases where the package isn't
in `lsp-client-packages` (like lsp-julia).
doom-etc-dir will be renamed to doom-data-dir, to better reflect its
purpose, and align it with XDG_DATA_HOME (where it will be moved to in
v3, where Doom will begin to obey XDG directory conventions more
closely).
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.
featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
* Configure java +lsp test runner via dap-mode
This configures dap-mode appropriately so the user can run tests
directly from Doom. It adds two bindings as well which tries to mirror
other major modes:
* `SPC m t t` runs all the tests in the class at point.
* `SPC m t s` runs a single test method at point.
I also expanded the README with more details about configuring `+lsp`.
* Add +java/run-test, document +lsp/uninstall-server
* Add +java/debug-test
* Fix localleader bindings
When in `:init` they don't load in time on the initial Java buffer.
This is a first pass at making `+lsp` more functional:
* Fix lsp not starting automatically when opening java-mode buffers.
Placing it in the lsp-java hook does not work.
* Enable the code lens for test classes.
* Add a keybinding/function to easily update the eclipse LSP server.
* Add a keybinding to bring up the lsp-jt-browser (the treemacs based
browser that lists all the project tests).
* Fix root path for lsp-jt.
There are still a lot of rough edges here, and I don't think it's quite
usable yet, mostly due to issues around the java test mode (lsp-jt). The other
functionality all seems to work well though.
Calling this pivotal macro "def-package!" has frequently been a source
of confusion. It is a thin wrapper around use-package, and it should be
obvious that it is so. For this reason, and to match the naming
convention used with other convenience macros/wrappers, it is now
use-package!.
Also changes def-package-hook! -> use-package-hook!
The old macros are now marked obsolete and will be removed when straight
integration is merged.
Still needs to be documented, but includes support for the following
languages:
+ C/C++/ObjC
+ Go
+ Java
+ Javascript
+ OCaml
+ PHP
+ Python
+ Ruby
+ Scala
+ Swift
+ HTML/CSS
Relevant to #460, #716, #1186