[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [lsp4e-dev] LSP diagnostics don't seem to be supported when integrating with Eclipse | 
Dear everyone,
Our language server is implemented in TypeScript with the vscode-language-server-node package, so I'm executing a Node process from the Eclipse plugin. I see that the Node process starts properly, but when I inspect the client capabilities in the connection's 
InitializeParams, I see that both the 
textDocument/publishDiagnostics and the 
pull diagnostic related capabilities are 
false, meaning they are not supported by the client application (Eclipse).
I find this odd considering that there are other language server integrations for Eclipse that work with diagnostics. I'm completely new to Eclipse plugin development, so, I don't know if I'm missing something, or misconfigured something.
The client application name and version I get from InitializeParams is Eclipse IDE/0.15.0.202211292024.
I included my implementation below, and I appreaciate any help.
ProcessStreamConnectionProvider implementation:
package io.codiga.rosiels;
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.lsp4e.server.ProcessStreamConnectionProvider;
public class RosieStreamConnectionProvider extends ProcessStreamConnectionProvider {
  public RosieStreamConnectionProvider() {
    try {
      String nodeJsLocation = System.getenv("NODE_PATH");
      URL serverJsUrl = getClass().getResource("/language-server/out/server.js"); 
			      String serverJsPath = FileLocator.toFileURL(serverJsUrl).getPath();
			      String serverjsAbsolutePath = new File(serverJsPath).getAbsolutePath();		
			
      var commands = List.of(nodeJsLocation + "node", serverjsAbsolutePath, "--stdio");			
			      setCommands(commands);
			      setWorkingDirectory(System.getProperty("user.dir"));
    } catch (IOException e) {
    }
  }
}
plugin.xml:
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         point="org.eclipse.core.contenttype.contentTypes">
         <content-type
         	base-type="org.eclipse.core.runtime.text"
         	file-extensions="js,jsx,ts,tsx,py,ipynb"
         	id="rosie.language.server"
         	name="Rosie Language Server"
         	priority="normal">
     	 </content-type>
   </extension>
   <extension
         point="org.eclipse.ui.editors">
         <editorContentTypeBinding
         	contentTypeId="rosie.language.server"
         	editorId="org.eclipse.ui.genericeditor.GenericEditor">
         </editorContentTypeBinding>
   </extension>
   <extension
         point="org.eclipse.lsp4e.languageServer">
      <server
            class="io.codiga.rosiels.RosieStreamConnectionProvider"
            id="rosie.language.server"
            label="rosie.language.server">
      </server>
      <contentTypeMapping
            contentType="rosie.language.server"
            id="rosie.language.server">
      </contentTypeMapping>
   </extension>
</plugin>