From 916e2e4242a005ee170dc7c97c0c6b1dff223b79 Mon Sep 17 00:00:00 2001 From: trick77 Date: Tue, 12 May 2026 21:15:16 +0200 Subject: [PATCH] fix(presets): make jdtls-clean-workspace order-independent Switch from a leaf replace at the deep init path to a merge at lsp.jdtls that supplies a default command alongside the generatesMetadataFilesAtProjectRoot flag. Previously, installing jdtls-clean-workspace alone (or before jdtls-lombok) produced an lsp.jdtls entry without command, which fails the opencode schema's required: ["command"] check. With merge mode, command is added when absent and preserved when jdtls-lombok has already set it. --- presets/jdtls-clean-workspace.conf | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/presets/jdtls-clean-workspace.conf b/presets/jdtls-clean-workspace.conf index d6ed8b2..306efcf 100644 --- a/presets/jdtls-clean-workspace.conf +++ b/presets/jdtls-clean-workspace.conf @@ -3,10 +3,21 @@ // opencode's Java LSP) from writing project metadata files — // .project, .classpath, .factorypath, and .settings/ — into your // project root during Maven/Gradle import. Sets the jdtls setting -// java.import.generatesMetadataFilesAtProjectRoot to false. Independent -// of the lombok module; can be applied with or without it. +// java.import.generatesMetadataFilesAtProjectRoot to false. Safe +// to apply with or without jdtls-lombok and in any order. // @author: Jan -// @version: 0.1.0 -// @path: lsp.jdtls.initialization.settings.java.import.generatesMetadataFilesAtProjectRoot - -false +// @version: 0.2.0 +// @path: lsp.jdtls +// @mode: merge +{ + "command": ["jdtls"], + "initialization": { + "settings": { + "java": { + "import": { + "generatesMetadataFilesAtProjectRoot": false + } + } + } + } +}