id: "java" aliases: - "javac" name: "Java" monacoLang: java install: apt: - default-jdk - clang-format manual: | install -d "${pkg}/opt/jdt" wget https://download.eclipse.org/jdtls/snapshots/jdt-language-server-latest.tar.gz tar -xf jdt-language-server-latest.tar.gz -C "${pkg}/opt/jdt" main: "src/Main.java" template: | public class Main { public static void main(String[] args) { System.out.println("Hello, world!"); } } compile: | javac src/Main.java run: | java -cp src Main format: run: | clang-format --style="{BasedOnStyle: llvm, IndentWidth: 4}" --assume-filename=Format.java input: | public class Main { public static void main(String[] args) { System.out.println("Hello, world!"); } } lsp: setup: | rm -rf "$HOME/jdt-config" && cp -RT /opt/jdt/config_linux "$HOME/jdt-config" start: | java -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dlog.level=ALL -noverify -Xmx1G -jar /opt/jdt/plugins/org.eclipse.equinox.launcher_*.jar -configuration "$HOME/jdt-config" -data "$HOME/jdt-data" --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED init: settings: java: autobuild: enabled: true codeGeneration: generateComments: false hashCodeEquals: useInstanceof: false useJava7Objects: false toString: codeStyle: STRING_CONCATENATION limitElements: 0 listArrayContents: true skipNullValues: false template: ${object.className} [${member.name()}=${member.value}, ${otherMembers}] useBlocks: false completion: enabled: true favoriteStaticMembers: - org.junit.Assert.* - org.junit.Assume.* - org.junit.jupiter.api.Assertions.* - org.junit.jupiter.api.Assumptions.* - org.junit.jupiter.api.DynamicContainer.* - org.junit.jupiter.api.DynamicTest.* - org.mockito.Mockito.* - org.mockito.ArgumentMatchers.* - org.mockito.Answers.* filteredTypes: - java.awt.* - com.sun.* guessMethodArguments: true importOrder: - java - javax - com - org overwrite: true configuration: checkProjectSettingsExclusions: true updateBuildConfiguration: automatic dependency: packagePresentation: flat errors: incompleteClasspath: severity: warning foldingRange: enabled: true format: comments: enabled: true enabled: true onType: enabled: true implementationsCodeLens: enabled: false import: exclusions: - '**/node_modules/**' - '**/.metadata/**' - '**/archetype-resources/**' - '**/META-INF/maven/**' gradle: enabled: false wrapper: enabled: false maven: enabled: false maven: downloadSources: false maxConcurrentBuilds: 1 progressReports: enabled: false referencesCodeLens: enabled: false saveActions: organizeImports: false selection: enabled: true signatureHelp: enabled: true trace: server: "off" code: "TODO" item: "TODO" skip: - lsp