@vscjava/java-language-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.md +102 -0
  2. package/bin/jdtls.js +282 -0
  3. package/lib/detect.js +121 -0
  4. package/lib/install.js +160 -0
  5. package/lib/postinstall.js +140 -0
  6. package/package.json +39 -0
  7. package/server/features/org.eclipse.equinox.executable_3.8.3200.v20260203-2149.jar +0 -0
  8. package/server/plugins/ch.qos.logback.classic_1.5.21.jar +0 -0
  9. package/server/plugins/ch.qos.logback.core_1.5.21.jar +0 -0
  10. package/server/plugins/com.google.gson_2.13.2.jar +0 -0
  11. package/server/plugins/com.google.guava.failureaccess_1.0.3.jar +0 -0
  12. package/server/plugins/com.google.guava_33.5.0.jre.jar +0 -0
  13. package/server/plugins/com.sun.jna.platform_5.18.1.jar +0 -0
  14. package/server/plugins/com.sun.jna_5.18.1.v20251001-0800.jar +0 -0
  15. package/server/plugins/jakarta.annotation-api_1.3.5.jar +0 -0
  16. package/server/plugins/jakarta.inject.jakarta.inject-api_1.0.5.jar +0 -0
  17. package/server/plugins/jakarta.servlet-api_6.1.0.jar +0 -0
  18. package/server/plugins/org.apache.ant_1.10.15.v20240901-1000.jar +0 -0
  19. package/server/plugins/org.apache.aries.spifly.dynamic.bundle_1.3.7.jar +0 -0
  20. package/server/plugins/org.apache.commons.cli_1.11.0.jar +0 -0
  21. package/server/plugins/org.apache.commons.commons-codec_1.20.0.jar +0 -0
  22. package/server/plugins/org.apache.commons.lang3_3.20.0.jar +0 -0
  23. package/server/plugins/org.apache.felix.scr_2.2.14.jar +0 -0
  24. package/server/plugins/org.commonmark.ext-gfm-tables_0.27.1.jar +0 -0
  25. package/server/plugins/org.commonmark_0.27.1.jar +0 -0
  26. package/server/plugins/org.eclipse.ant.core_3.7.800.v20260130-1053.jar +0 -0
  27. package/server/plugins/org.eclipse.buildship.compat_3.1.10.v20250827-0209-s.jar +0 -0
  28. package/server/plugins/org.eclipse.buildship.core_3.1.10.v20250827-0209-s.jar +0 -0
  29. package/server/plugins/org.eclipse.compare.core_3.8.800.v20250718-1505.jar +0 -0
  30. package/server/plugins/org.eclipse.core.commands_3.12.500.v20251103-0733.jar +0 -0
  31. package/server/plugins/org.eclipse.core.contenttype_3.9.800.v20251105-1620.jar +0 -0
  32. package/server/plugins/org.eclipse.core.expressions_3.9.500.v20250608-0434.jar +0 -0
  33. package/server/plugins/org.eclipse.core.filebuffers_3.8.500.v20251103-0746.jar +0 -0
  34. package/server/plugins/org.eclipse.core.filesystem_1.11.400.v20251107-0507.jar +0 -0
  35. package/server/plugins/org.eclipse.core.jobs_3.15.700.v20250725-1147.jar +0 -0
  36. package/server/plugins/org.eclipse.core.net_1.5.800.v20250613-1119.jar +0 -0
  37. package/server/plugins/org.eclipse.core.resources_3.23.200.v20251217-0810.jar +0 -0
  38. package/server/plugins/org.eclipse.core.runtime_3.34.200.v20251220-0953.jar +0 -0
  39. package/server/plugins/org.eclipse.core.variables_3.6.700.v20250913-1442.jar +0 -0
  40. package/server/plugins/org.eclipse.debug.core_3.23.200.v20251107-0507.jar +0 -0
  41. package/server/plugins/org.eclipse.equinox.app_1.7.600.v20251211-1038.jar +0 -0
  42. package/server/plugins/org.eclipse.equinox.common_3.20.300.v20251111-0312.jar +0 -0
  43. package/server/plugins/org.eclipse.equinox.frameworkadmin.equinox_1.3.400.v20250515-0513.jar +0 -0
  44. package/server/plugins/org.eclipse.equinox.frameworkadmin_2.3.500.v20250716-0529.jar +0 -0
  45. package/server/plugins/org.eclipse.equinox.http.service.api_1.2.102.v20250520-0629.jar +0 -0
  46. package/server/plugins/org.eclipse.equinox.launcher.cocoa.macosx.aarch64_1.2.1400.v20250801-0854.jar +0 -0
  47. package/server/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.2.1400.v20250801-0854.jar +0 -0
  48. package/server/plugins/org.eclipse.equinox.launcher.gtk.linux.aarch64_1.2.1500.v20250801-0854.jar +0 -0
  49. package/server/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.1500.v20250801-0854.jar +0 -0
  50. package/server/plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.3.0.v20260203-2149.jar +0 -0
  51. package/server/plugins/org.eclipse.equinox.launcher_1.7.100.v20251111-0406.jar +0 -0
  52. package/server/plugins/org.eclipse.equinox.preferences_3.12.100.v20251111-0704.jar +0 -0
  53. package/server/plugins/org.eclipse.equinox.registry_3.12.600.v20250906-0651.jar +0 -0
  54. package/server/plugins/org.eclipse.equinox.security.linux_1.1.400.v20250521-0415.jar +0 -0
  55. package/server/plugins/org.eclipse.equinox.security.macosx_1.102.500.v20250521-0414.jar +0 -0
  56. package/server/plugins/org.eclipse.equinox.security.win32_1.3.0.v20240419-2334.jar +0 -0
  57. package/server/plugins/org.eclipse.equinox.security_1.4.700.v20250622-1644.jar +0 -0
  58. package/server/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_2.3.600.v20250729-0655.jar +0 -0
  59. package/server/plugins/org.eclipse.equinox.simpleconfigurator_1.5.700.v20251111-1031.jar +0 -0
  60. package/server/plugins/org.eclipse.jdt.apt.core_3.8.600.v20241001-0914.jar +0 -0
  61. package/server/plugins/org.eclipse.jdt.apt.pluggable.core_1.4.700.v20251202-0459.jar +0 -0
  62. package/server/plugins/org.eclipse.jdt.core.compiler.batch_3.45.0.v20260224-0835.jar +0 -0
  63. package/server/plugins/org.eclipse.jdt.core.javac_1.0.0.z20260225-2209.jar +0 -0
  64. package/server/plugins/org.eclipse.jdt.core.manipulation_1.24.0.v20260212-2209.jar +0 -0
  65. package/server/plugins/org.eclipse.jdt.core_3.45.0.v20260219-1233.jar +0 -0
  66. package/server/plugins/org.eclipse.jdt.debug_3.25.100.v20260212-0641.jar +0 -0
  67. package/server/plugins/org.eclipse.jdt.junit.core_3.14.100.v20251223-2158.jar +0 -0
  68. package/server/plugins/org.eclipse.jdt.junit.runtime_3.8.0.v20251113-1434.jar +0 -0
  69. package/server/plugins/org.eclipse.jdt.launching.macosx_3.6.400.v20260211-1052.jar +0 -0
  70. package/server/plugins/org.eclipse.jdt.launching_3.24.100.v20260218-1303.jar +0 -0
  71. package/server/plugins/org.eclipse.jdt.ls.core_1.57.0.202602261110.jar +0 -0
  72. package/server/plugins/org.eclipse.jdt.ls.filesystem_1.57.0.202602261110.jar +0 -0
  73. package/server/plugins/org.eclipse.jdt.ls.logback.appender_1.57.0.202602261110.jar +0 -0
  74. package/server/plugins/org.eclipse.jetty.servlet-api_4.0.9.jar +0 -0
  75. package/server/plugins/org.eclipse.lsp4j.jsonrpc_0.24.0.v20250131-1745.jar +0 -0
  76. package/server/plugins/org.eclipse.lsp4j_0.24.0.v20250131-1745.jar +0 -0
  77. package/server/plugins/org.eclipse.ltk.core.refactoring_3.15.100.v20251023-1358.jar +0 -0
  78. package/server/plugins/org.eclipse.m2e.apt.core_2.3.100.20250418-1315.jar +0 -0
  79. package/server/plugins/org.eclipse.m2e.core_2.7.600.20251121-1832.jar +0 -0
  80. package/server/plugins/org.eclipse.m2e.jdt_2.5.0.20251112-1507.jar +0 -0
  81. package/server/plugins/org.eclipse.m2e.maven.runtime_3.9.1101.20251020-1549.jar +0 -0
  82. package/server/plugins/org.eclipse.m2e.workspace.cli_0.4.0.jar +0 -0
  83. package/server/plugins/org.eclipse.osgi.compatibility.state_1.3.0.v20251022-1724.jar +0 -0
  84. package/server/plugins/org.eclipse.osgi.services_3.12.300.v20250707-1221.jar +0 -0
  85. package/server/plugins/org.eclipse.osgi_3.24.100.v20251215-1416.jar +0 -0
  86. package/server/plugins/org.eclipse.search.core_3.16.600.v20250920-0652.jar +0 -0
  87. package/server/plugins/org.eclipse.text_3.14.600.v20260112-1806.jar +0 -0
  88. package/server/plugins/org.eclipse.xtext.xbase.lib_2.41.0.v20251124-0739.jar +0 -0
  89. package/server/plugins/org.gradle.toolingapi_8.9.0.v20250827-0209-s.jar +0 -0
  90. package/server/plugins/org.hamcrest_3.0.0.jar +0 -0
  91. package/server/plugins/org.jsoup_1.19.1.jar +0 -0
  92. package/server/plugins/org.junit_4.13.2.v20240929-1000.jar +0 -0
  93. package/server/plugins/org.objectweb.asm.commons_9.9.1.jar +0 -0
  94. package/server/plugins/org.objectweb.asm.tree.analysis_9.9.1.jar +0 -0
  95. package/server/plugins/org.objectweb.asm.tree_9.9.1.jar +0 -0
  96. package/server/plugins/org.objectweb.asm.util_9.9.1.jar +0 -0
  97. package/server/plugins/org.objectweb.asm_9.9.1.jar +0 -0
  98. package/server/plugins/org.osgi.service.cm_1.6.1.202109301733.jar +0 -0
  99. package/server/plugins/org.osgi.service.component_1.5.1.202212101352.jar +0 -0
  100. package/server/plugins/org.osgi.service.device_1.1.1.202109301733.jar +0 -0
  101. package/server/plugins/org.osgi.service.event_1.4.1.202109301733.jar +0 -0
  102. package/server/plugins/org.osgi.service.http.whiteboard_1.1.1.202109301733.jar +0 -0
  103. package/server/plugins/org.osgi.service.metatype_1.4.1.202109301733.jar +0 -0
  104. package/server/plugins/org.osgi.service.prefs_1.1.2.202109301733.jar +0 -0
  105. package/server/plugins/org.osgi.service.provisioning_1.2.0.201505202024.jar +0 -0
  106. package/server/plugins/org.osgi.service.upnp_1.2.1.202109301733.jar +0 -0
  107. package/server/plugins/org.osgi.service.useradmin_1.1.1.202109301733.jar +0 -0
  108. package/server/plugins/org.osgi.service.wireadmin_1.0.2.202109301733.jar +0 -0
  109. package/server/plugins/org.osgi.util.function_1.2.0.202109301733.jar +0 -0
  110. package/server/plugins/org.osgi.util.promise_1.3.0.202212101352.jar +0 -0
  111. package/server/plugins/slf4j.api_2.0.17.jar +0 -0
  112. package/server/plugins/wrapped.com.jetbrains.intellij.java.java-decompiler-engine_253.29346.240.jar +0 -0
  113. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-emoji_0.64.8.jar +0 -0
  114. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-gfm-strikethrough_0.64.8.jar +0 -0
  115. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-ins_0.64.8.jar +0 -0
  116. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-superscript_0.64.8.jar +0 -0
  117. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-tables_0.64.8.jar +0 -0
  118. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-ext-wikilink_0.64.8.jar +0 -0
  119. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-html2md-converter_0.64.8.jar +0 -0
  120. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-jira-converter_0.64.8.jar +0 -0
  121. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-ast_0.64.8.jar +0 -0
  122. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-builder_0.64.8.jar +0 -0
  123. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-collection_0.64.8.jar +0 -0
  124. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-data_0.64.8.jar +0 -0
  125. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-dependency_0.64.8.jar +0 -0
  126. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-format_0.64.8.jar +0 -0
  127. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-html_0.64.8.jar +0 -0
  128. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-misc_0.64.8.jar +0 -0
  129. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-options_0.64.8.jar +0 -0
  130. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-sequence_0.64.8.jar +0 -0
  131. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util-visitor_0.64.8.jar +0 -0
  132. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark-util_0.64.8.jar +0 -0
  133. package/server/plugins/wrapped.com.vladsch.flexmark.flexmark_0.64.8.jar +0 -0
  134. package/server/plugins/wrapped.org.jetbrains.annotations_24.0.1.jar +0 -0
@@ -0,0 +1,140 @@
1
+ 'use strict';
2
+
3
+ const { execSync } = require('child_process');
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+ const { findJava, findConfigDir, findLauncherJar } = require('./install');
7
+
8
+ const COPILOT_LSP_CONFIG = path.join(
9
+ process.env.HOME || process.env.USERPROFILE || '',
10
+ '.copilot',
11
+ 'lsp-config.json'
12
+ );
13
+
14
+ function checkJavaVersion(javaPath) {
15
+ try {
16
+ const output = execSync(`"${javaPath}" -version 2>&1`, {
17
+ encoding: 'utf8',
18
+ timeout: 10000,
19
+ });
20
+
21
+ const match = output.match(/version "(\d+)/);
22
+ if (match) {
23
+ const major = parseInt(match[1], 10);
24
+ return { version: major, output: output.trim() };
25
+ }
26
+ return { version: null, output: output.trim() };
27
+ } catch (e) {
28
+ return { version: null, output: e.message };
29
+ }
30
+ }
31
+
32
+ /**
33
+ * Auto-register with Copilot CLI's lsp-config.json.
34
+ * Merges a java server entry without overwriting existing config.
35
+ */
36
+ function registerWithCopilotCli() {
37
+ const javaEntry = {
38
+ command: 'jdtls',
39
+ args: ['--stdio'],
40
+ fileExtensions: {
41
+ '.java': 'java',
42
+ },
43
+ };
44
+
45
+ let config = { lspServers: {} };
46
+
47
+ // Read existing config if present
48
+ if (fs.existsSync(COPILOT_LSP_CONFIG)) {
49
+ try {
50
+ config = JSON.parse(fs.readFileSync(COPILOT_LSP_CONFIG, 'utf8'));
51
+ if (!config.lspServers) {
52
+ config.lspServers = {};
53
+ }
54
+ } catch (e) {
55
+ console.warn(`⚠ Warning: Could not parse ${COPILOT_LSP_CONFIG}: ${e.message}`);
56
+ console.warn(' Skipping auto-registration. You can manually add the java entry.');
57
+ return false;
58
+ }
59
+ }
60
+
61
+ // Don't overwrite if java is already configured
62
+ if (config.lspServers.java) {
63
+ console.log('ℹ Java LSP already registered in Copilot CLI config.');
64
+ return true;
65
+ }
66
+
67
+ // Add java entry
68
+ config.lspServers.java = javaEntry;
69
+
70
+ // Write back
71
+ const configDir = path.dirname(COPILOT_LSP_CONFIG);
72
+ if (!fs.existsSync(configDir)) {
73
+ fs.mkdirSync(configDir, { recursive: true });
74
+ }
75
+
76
+ fs.writeFileSync(COPILOT_LSP_CONFIG, JSON.stringify(config, null, 2) + '\n');
77
+ console.log(`✓ Auto-registered Java LSP in ${COPILOT_LSP_CONFIG}`);
78
+ return true;
79
+ }
80
+
81
+ function main() {
82
+ console.log('@vscjava/java-language-server - Post-install verification\n');
83
+
84
+ let hasErrors = false;
85
+
86
+ // 1. Check Java
87
+ const javaPath = findJava({});
88
+ console.log(`Java executable: ${javaPath}`);
89
+
90
+ const javaInfo = checkJavaVersion(javaPath);
91
+ if (javaInfo.version) {
92
+ console.log(`Java version: ${javaInfo.version}`);
93
+ if (javaInfo.version < 21) {
94
+ console.warn(`⚠ Warning: Java 21+ is required, but found Java ${javaInfo.version}.`);
95
+ console.warn(' Install Java 21+ or use the bundled JRE package.');
96
+ hasErrors = true;
97
+ } else {
98
+ console.log('✓ Java version OK');
99
+ }
100
+ } else {
101
+ console.warn('⚠ Warning: Could not determine Java version.');
102
+ console.warn(` Output: ${javaInfo.output}`);
103
+ console.warn(' jdtls requires Java 21+. Ensure it is installed and accessible.');
104
+ hasErrors = true;
105
+ }
106
+
107
+ // 2. Check platform config
108
+ const configDir = findConfigDir();
109
+ if (configDir) {
110
+ console.log(`✓ Platform config: ${configDir}`);
111
+ } else {
112
+ console.warn(`⚠ Warning: No platform config found for ${process.platform}.`);
113
+ hasErrors = true;
114
+ }
115
+
116
+ // 3. Check launcher jar
117
+ const serverDir = require('path').join(__dirname, '..', 'server');
118
+ const launcher = findLauncherJar(serverDir);
119
+ if (launcher) {
120
+ console.log(`✓ Launcher jar: ${launcher}`);
121
+ } else {
122
+ console.log('ℹ Note: Launcher jar not found. Place jdtls server files in server/plugins/.');
123
+ console.log(' Download from: https://download.eclipse.org/jdtls/milestones/');
124
+ }
125
+
126
+ // 4. Auto-register with Copilot CLI
127
+ console.log('');
128
+ registerWithCopilotCli();
129
+
130
+ // Summary
131
+ console.log('');
132
+ if (hasErrors) {
133
+ console.log('Setup completed with warnings. Some features may not work until issues are resolved.');
134
+ } else {
135
+ console.log('Setup completed successfully! Java LSP is ready for Copilot CLI.');
136
+ console.log('No java-lsp.json needed for standard Maven/Gradle projects.');
137
+ }
138
+ }
139
+
140
+ main();
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@vscjava/java-language-server",
3
+ "version": "0.1.0",
4
+ "description": "Java Language Server (Eclipse JDT LS) for Copilot CLI",
5
+ "license": "EPL-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/myscope/java-language-server"
9
+ },
10
+ "main": "lib/install.js",
11
+ "bin": {
12
+ "jdtls": "bin/jdtls.js"
13
+ },
14
+ "files": [
15
+ "bin",
16
+ "lib",
17
+ "server",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "postinstall": "node lib/postinstall.js"
22
+ },
23
+ "optionalDependencies": {
24
+ "@vscjava/java-ls-config-win32": "0.1.0",
25
+ "@vscjava/java-ls-config-linux": "0.1.0",
26
+ "@vscjava/java-ls-config-darwin": "0.1.0",
27
+ "@vscjava/java-ls-jre-win32-x64": "0.1.0",
28
+ "@vscjava/java-ls-jre-linux-x64": "0.1.0",
29
+ "@vscjava/java-ls-jre-linux-arm64": "0.1.0",
30
+ "@vscjava/java-ls-jre-darwin-arm64": "0.1.0",
31
+ "@vscjava/java-ls-jre-darwin-x64": "0.1.0"
32
+ },
33
+ "engines": {
34
+ "node": ">=16.0.0"
35
+ },
36
+ "publishConfig": {
37
+ "registry": "https://registry.npmjs.org/"
38
+ }
39
+ }