Commit Graph

40 Commits

Author SHA1 Message Date
qw457812
a582f00447 revert: "feat(extra): allow users to add custom bundles through opts.init_options.bundles to jdtls (#6265)" (#6650)
Fixes:

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:165: attempt to index field 'jdtls' (a function value)

  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:165 _in_ **config**
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:36
  - vim/shared.lua:0
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:35
  - vim/_editor.lua:0 _in_ **cmd**
  - /snacks.nvim/lua/snacks/picker/actions.lua:115 _in_ **fn**
  - /snacks.nvim/lua/snacks/win.lua:339
```

`init_options.bundles` already can be overridden by `opts.jdtls`, see:
https://github.com/LazyVim/LazyVim/pull/6265#issuecomment-3203831504 for
example.

## Description

Reverts the commit, which breaks `opts.jdtls` defined here:


faeb24ba95/lua/lazyvim/plugins/extras/lang/java.lua (L185-L185)

## Related Issue(s)

#6265 

## Screenshots

None.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 12:50:54 +02:00
Zapan Gao
faeb24ba95 feat(extra): allow users to add custom bundles through opts.init_options.bundles to jdtls (#6265)
Allow users to add custom bundles through opts.init_options.bundles to
jdtls with lang java extra is on.
2025-10-20 11:49:08 +02:00
Yiqian Liu
83468be350 fix(keymap): remove select mode remaps of printable characters (#6296)
## Description

Most of the "visual mode" mappings use "v" instead of "x", and therefore
also affect select mode.
If the key is a printable character, it is now unusable in select mode.
This is most prominent with `<leader>`, which is space by default, a
printable character.

The most common use of select mode is when it is automatically triggered
by snippets. Currently, trying to type space, g, <, >, etc. as the first
character of a snippet field will trigger their bind instead of actually
inserting the character.

I cannot currently think of any good reason why anyone would rely on
using select mode to execute any of these mapped actions.

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-20 00:10:08 -07:00
Lawrence Ho
9618e327ed feat(java): enable blink.cmp capabilities to show signature documentation (#5218)
## Description

Enable `blink.cmp` capabilities to show Java signature documentation
during completion.
See also: https://github.com/Saghen/blink.cmp/issues/151

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-10-19 12:55:38 +02:00
Folke Lemaitre
67781bda04 Revert "fix(jdtls): allow mason jdtls installation (#6498)"
This reverts commit 80990ec62f.
2025-09-23 13:00:13 +02:00
dareni
c423765962 fix(jdtls): bundle configuration bug fix (#6499)
The jar for the debug adapter was included but the operation to append
the java-test jar files failed.
2025-09-22 13:56:18 +02:00
dareni
80990ec62f fix(jdtls): allow mason jdtls installation (#6498)
Bug fix jdtls config for compatibility with last lsp refactor.
2025-09-22 13:55:56 +02:00
Folke Lemaitre
36b41911ab fix(lspconfig): remove all usage of lspconfig 2025-09-18 13:06:48 +02:00
qw457812
c05392186e fix(jdtls): root_dir (#6429)
Fix:

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:113: attempt to call field 'root_dir' (a nil value)

  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:113 _in_ **full_cmd**
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:169 _in_ **attach_jdtls**
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:286 _in_ **config**
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:36
  - vim/shared.lua:0
  - ~/.local/share/bob/nightly/share/nvim/runtime/filetype.lua:35
  - vim/_editor.lua:0 _in_ **cmd**
  - /persistence.nvim/lua/persistence/init.lua:88 _in_ **load**
  - lua:1
  - vim/_editor.lua:0 _in_ **action**
  - /snacks.nvim/lua/snacks/dashboard.lua:693
```

## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-09-16 11:46:26 +02:00
Folke Lemaitre
271fecb067 fix(jdtls): root_dir 2025-09-15 20:44:14 +02:00
Folke Lemaitre
23b9cdeb34 fix(lspconfig): remove all references to lspconfig. Closes #6426 2025-09-15 20:42:10 +02:00
Iordanis Petkakis
773f28b491 fix(mason): migrate to mason v2 (#6053)
## Description
`mason-lspconfig` v2 made changes to conform with latest Neovim
`vim.lsp.config`/`vim.lsp.enable` API.

- Lock `mason` and `mason-lspconfig` to v1 versions for Neovim <0.11 and
latest HEAD for Neovim >=0.11.
- Change `:get_install_path()` method in LazyVim to use
`LazyVim.get_pkg_path()` and also update name references to new ones.
- Change `nvim-lspconfig` from `LazyFile` to `{ "BufReadPre",
"BufNewFile", "BufWritePre" }` for Neovim >=0.11, since on `BufReadPost`
the LSP would not attach on the first buffer. Previously the
`setup.handlers()` function from `mason-lspconfig` would take care of
that, but that has been removed on v2. I fail to think if there's a
better way to handle this.

Most of the changes in `/lsp/init.lua` are thanks to @williamboman
comment
[here](https://github.com/LazyVim/LazyVim/pull/6041#issuecomment-2857266471).

I've also seen that both `mason-lspconfig` and `rustaceanvim` now have
as minimum requirements Neovim >=0.11.
As such I would suggest, instead of all the conditional checks for
Neovim versions to create a stable release where we pin `mason` and
`mason-lspconfig` to v1 versions and then only incorporate William's
suggestions in a new release and mention in the README that users who
are on Neovim <0.11 should use the stable release where the plugin
versions are pinned to v1. Not sure how you want to tackle this, so this
is merely just a suggestion from my part.

Both #6041 and #6045 tackle only with the new name references and the
offending line that was causing the error, but don't take into
consideration the LSP servers configurations. `opts.setup` would not
execute on both, since that was handled by `setup_handlers()` function
in the past. I checked with Typescript lang and with those PRs there are
no Javascript settings in `vtsls` (by checking with
`:=LazyVim.opts("nvim-lspconfig").servers.vtsls`).
#6045 also tried to change the method `:get_install_pkg()` by using
`vim.fn.exepath`, but to my understanding that only returns the binary
path not the package installation path and that is later concatenated to
find other paths, which I believe is not correct.

PS: There are 2 commits, because my LazyVim fork was not up to date and
updated it and then merged the branch I had into a new branch. Sorry if
that causes any inconvenience.
<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
Fixes #6039
<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

---------

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
Co-authored-by: William Boman <william@redwill.se>
Co-authored-by: Luis Durão <kpvrzlzzx@mozmail.com>
2025-09-15 12:08:19 +02:00
Folke Lemaitre
c20c402295 fix(mason): rename and pin to v1 2025-05-12 10:39:04 +02:00
Junyi Liu
66c3577bc7 perf(java): setting opts.dap_main to false to disable main class scan (#5391)
## Description

For large Java project, calling
`require("jdtls.dap").setup_dap_main_class_configs(opts.dap_main)` has a
huge performance impact on the LSP. I tested on a Java project with 3.7K
java source files and 12K other files, a simple go_definition can take
about 20-30 seconds.

This change allow user to set the `opts.dap_main` to false so we can
skip the main class scan. By using the `.lazy.lua` project specific
setting, we can easily customize this option per project.

## Related Issue(s)

#5387 

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2025-01-20 13:16:14 +01:00
iniw
5b1b6b29d7 fix(java): only setup debug adapter config if mason is installed (for real this time) (#5014)
## Description

This one *actually* fixes the issue, sorry about my previous PR.
2024-12-12 19:37:08 +01:00
iniw
aad0edbf74 fix(java): only setup debug adapter config if mason is installed (#5013)
## Description
This prevents the following error when opening java files when mason is
disabled (e.g: NixOS)

```
Failed to run `config` for nvim-jdtls

...im/lazy/LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149: module 'mason-registry' not found:
	no field package.preload['mason-registry']
cache_loader: module mason-registry not found
cache_loader_lib: module mason-registry not found
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/share/lua/5.1/mason-registry/init.lua'
	no file '/nix/store/j3563y13yim4m7qdwk0m8h22648wbifj-luajit-2.1.1713773202-env/lib/lua/5.1/mason-registry.so'

# stacktrace:
  - /LazyVim/lua/lazyvim/plugins/extras/lang/java.lua:149 _in_ **config**
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:36
  - /nix/store/xgn4baapvvk35ssi47bsmmyawl83917g-neovim-unwrapped-0.10.2/share/nvim/runtime/filetype.lua:35
```

## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-12-12 18:58:39 +01:00
Ughur Alakbarov
21b02f056d fix(java): only use mason-registry if mason installed (#4991)
## Description
The current config breaks when mason is not installed (e.g. for Nix
users). This PR makes the mason-related functionality (which, as of now,
consists only of finding `lombok`) dependent on mason being installed.
As noted in the commit, this does make it impossible to use lombok
without mason, but I'm unaware of any other method of finding it (which
is why mason-registry was used in the first place, I assume)

Please note that I'm not very experienced with Lua and the code might be
not the most idiomatic one.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->

## Screenshots

<!-- Add screenshots of the changes if applicable. -->

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Folke Lemaitre <folke.lemaitre@gmail.com>
2024-12-12 18:15:53 +01:00
Michael Kwan
c9102bc351 fix(java): give java a default nvim-dap config (#4261)
## Description

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->
Currently, there are no Java configurations for nvim-dap upon enabling
the Java extras.

This requires debugging configurations to be setup manually afterwards.

(This is unlike many other language extras which do have nvim-dap
support "out of the box")

This pr creates an initial configuration for nvim-dap which lets it
attach to a debugging process on port 5005.
(such as a spring boot application) More can be added if there are any
experienced Java devs here.

## Related Issue(s)

<!--
  If this PR fixes any issues, please link to the issue here.
  - Fixes #<issue_number>
-->
None

## Screenshots

<!-- Add screenshots of the changes if applicable. -->
Error message:

![image](https://github.com/user-attachments/assets/5922cf48-6ac7-4a2a-8785-1f9b958089e4)

Java remote debugging open:

![image](https://github.com/user-attachments/assets/dfbe7c5b-2308-4aa4-a236-487605e4c75a)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-26 09:13:01 +01:00
Michael Kwan
30fac4206a fix(java): minisurround jdtls keybind conflict (#4886)
## Description

Fixes the keybind conflict with jdtls and mini-surround plugin.

When pressing "\<gs\>" or "\<gS\>" to start the surround once the java
language server starts,
it replaces the surround bind with "goto super" and "goto subjects".

When pressing "\<gs\>" quickly, it attempts the command "goto super".
When pressing "\<gs\>" slowly, it brings up "which-key" and the surround
bind works.

## Related Issue(s)

None

## Screenshots
Pressing "\<gs\>" quickly

![image](https://github.com/user-attachments/assets/8fbaf39f-72cd-4d7d-bcf7-035faa7650e8)

Pressing "\<gs\>" slowly

![image](https://github.com/user-attachments/assets/2ec4d1f3-f900-413c-8351-26cb8a5cbafc)


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-11-25 14:57:17 +01:00
Folke Lemaitre
6e4025229d fix(lsp): backward compat with lspconfig refactor. Fixes #4525. See #4518 2024-10-02 10:18:21 +02:00
Seth Buntin
74325743e7 fix(extras): rename lspconfig.server_configurations to lspconfig.configs (#4518)
## Description


bedb2a0df1
introduces a change to the Lua module structure for `nvim-lspconfig`
that broke `tailwindcss`. Tried to also address all the other usages of
`lspconfig.server_configurations` within the ecosystem.

## Screenshots

![mason-lspconfig
nvim](https://github.com/user-attachments/assets/bc9f80f0-3386-436f-8f86-abfcb311cec2)


## Checklist

- [X] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-10-02 09:24:02 +02:00
Lawrence Ho
28a7f8126c feat(java): new java mappings format for which-key v3 (#4013)
## Description

Use which-key v3 format for java mappings.

`<leader>c` is removed as it is reported as a duplicate mapping in
health check.

## Related Issue(s)


## Screenshots


## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-13 09:54:58 +02:00
sus-domesticus
b481b644dd fix(java): fix config_overrides for tests (#3968)
## Description
Problem
In the default configuration `opts.test` is a boolean and the code tries
to access `opts.test.config_overrides` which results in an error.

Solution
Use control flow to return nil in the case of `opts.test` being boolean.

<!-- Describe the big picture of your changes to communicate to the
maintainers
  why we should accept this pull request. -->

## Related Issue(s)
  - Fixes #3965.

## Checklist

- [ x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-09 17:12:02 +02:00
kezhenxu94
8b2eacb6ac feat(java): allow overriding test config (#3891)
## What is this PR for?

Allow overriding java test config

## Does this PR fix an existing issue?

NO

## Checklist

- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.
2024-07-07 20:50:13 +02:00
Adrian Wilkins
0fede4040b feat(java): enable Lombok support in jdtls (#3852)
jdtls needs an argument passed to the JVM to load Lombok as an agent.

Mason downloads `lombok.jar`so we can use that

## What is this PR for?

Configures Lombok support in `jdtls` ; this removes a lot of red
underlines in Java projects that use it.

Changes this

![image](https://github.com/LazyVim/LazyVim/assets/368399/87dbe37a-7d2c-4410-a600-c702e3097f63)

To this

![image](https://github.com/LazyVim/LazyVim/assets/368399/db6ada27-82f3-4052-a0c8-1e62882aaffc)


- [x] I've read the
[CONTRIBUTING](https://github.com/LazyVim/LazyVim/blob/main/CONTRIBUTING.md)
guidelines.

Co-authored-by: Adrian Wilkins <adrian.wilkins.contractor@dvla.gov.uk>
2024-06-29 11:45:53 +02:00
Folke Lemaitre
ab41ff551b refactor: use lazy's new opts_extend functionality for treesitter and mason 2024-06-07 09:03:59 +02:00
Folke Lemaitre
8e67bb1240 fix(java): properly pass settings to jdtls 2024-05-20 22:39:36 +02:00
Folke Lemaitre
e5ea8abd38 feat(java): enable inlay hints. Fixes #3244 2024-05-20 20:42:25 +02:00
Folke Lemaitre
c29213416b feat(extras): added recommended detectors for all languages 2024-05-18 14:39:20 +02:00
Folke Lemaitre
8d31bf230c fix(java): dont error when not using cmp. Fixes #2038 2024-03-22 09:54:24 +01:00
Folke Lemaitre
7a5dbeae75 feat: use LazyVim everywhere instead of require("lazyvim.util") 2024-03-22 09:15:09 +01:00
Frederick Zhang
a7c16f8efd feat(java): allow opts for setup_dap_main_class_configs() (#2581)
[1] 382b9f6258/doc/jdtls.txt (L206-L210)
2024-03-07 17:48:00 +01:00
金雄镕
61fae7d23f fix: fix jdtls not spwaning in windows (#1864) 2023-10-25 15:46:39 +02:00
Folke Lemaitre
f1af34e885 fix(dap): move launchjs code from java to dap 2023-09-26 13:38:48 +02:00
aqav
5dc4ce3e4a feat(java): support vscode launch json in Java (#1422)
* feat(java): support vscode launch json

* feat(java): support vscode launch json
2023-09-26 13:36:22 +02:00
Aron Griffis
15022f4892 fix(java): don't accumulate on_attach, and make more configurable (#1388)
* fix(java): don't accumulate on_attach, and make more configurable

* refactor(java): move defaults to opts
2023-09-04 23:00:39 +02:00
Iordanis Petkakis
9fe89f5f8a fix(lang_java): fixes #1215 other two entries of vim.fs.joinpath as well that were not changed in #1213 (#1216) 2023-07-25 19:22:10 +02:00
Andreas Gerlach
2e09051472 fix: fixes #1207 (#1213)
Co-authored-by: Andreas Gerlach <andreas.gerlach@xarvio.com>
2023-07-25 15:25:24 +02:00
Andreas Gerlach
f6d646a325 feat(java): add test and debug support for Java extension (#1192) 2023-07-23 18:08:01 +02:00
Aron Griffis
0411baab89 feat(lang): add java (#1132) 2023-07-22 09:12:42 +02:00