Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel3

Starting the Language Server (LS)

This part of the guide covers the server side development for KEITH, the language server (LS).

Register start hook (Eclipse)

Currently the LS is an eclipse application and it has to be started as one. To do this the Manifest.mf in the META-INF folder of your langauge server plugin has to be changed. In extensions tab a new extension point for org.eclipse.core.runtime.applications has to be created. This has to map to your start class of your language server, which has to be an IApplication that implements a start method.

Image Added


Language Registration


Bindings


Starting and connecting

Connection via Socket


Connection via stdin/stdout

Developing a LS extension

...

Code Block
var iLanguageServerExtensions = <Object>newArrayList(languageServer) // list of all language server extensions
for (lse : KielerServiceLoader.load(ILanguageServerContribution)) { // dynamically load all contributions to add LS extensions
	iLanguageServerExtensions.add(lse.getLanguageServerExtension(injector))
}

The resulting list of implementions is used to add the extensions to the language server.

Info

The interfaces used for dynamic registration are in the semantics repository. If you define a pragmatics LS extension you have to statically add these extensions to your list.


Register an extension (on server side)

...