All Projects → lxtk-org → lxtk

lxtk-org / lxtk

Licence: EPL-2.0 license
Language Client/Server Toolkit

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to lxtk

LuaHelper
LuaHelper is a High-performance lua VSCode plugin, Language Server Protocol for lua.
Stars: ✭ 170 (+672.73%)
Mutual labels:  language-server-protocol, lsp, language-server-client
LspCpp
A Language Server Protocol implementation in C++
Stars: ✭ 40 (+81.82%)
Mutual labels:  language-server-protocol, lsp, lsp-client
lsp spinner.nvim
neovim plugin to retrieve the name of the running LSP client(s) and display a spinner when there are wip job
Stars: ✭ 23 (+4.55%)
Mutual labels:  lsp, lsp-client
groovy-language-server
A language server for Groovy
Stars: ✭ 132 (+500%)
Mutual labels:  language-server-protocol, lsp
navigator.lua
Source code analysis & navigation plugin for Neovim. Navigate codes like a breeze🎐. Exploring LSP and 🌲Treesitter symbols a piece of 🍰. Take control like a boss 🦍.
Stars: ✭ 781 (+3450%)
Mutual labels:  lsp, language-server-client
Tern.java
Use tern.js in Java context
Stars: ✭ 246 (+1018.18%)
Mutual labels:  eclipse, eclipse-plugin
lsp-test
A functional test framework for LSP servers
Stars: ✭ 35 (+59.09%)
Mutual labels:  language-server-protocol, lsp
eclipse
Eclipse For Bazel (deprecated, see https://github.com/salesforce/bazel-eclipse instead)
Stars: ✭ 31 (+40.91%)
Mutual labels:  eclipse, eclipse-plugin
Eclipse Instasearch
Eclipse plug-in for fast code search
Stars: ✭ 165 (+650%)
Mutual labels:  eclipse, eclipse-plugin
eclipse-pmd
eclipse-pmd has been moved to
Stars: ✭ 20 (-9.09%)
Mutual labels:  eclipse, eclipse-plugin
typescript-language-server
TypeScript & JavaScript Language Server
Stars: ✭ 1,118 (+4981.82%)
Mutual labels:  language-server-protocol, lsp
vis-lspc
language server protocol client for the vis editor
Stars: ✭ 24 (+9.09%)
Mutual labels:  language-server-protocol, lsp
Amateras Modeler
UML and ER-diagram editor for Eclipse
Stars: ✭ 190 (+763.64%)
Mutual labels:  eclipse, eclipse-plugin
J2c
Java to C++ translator
Stars: ✭ 189 (+759.09%)
Mutual labels:  eclipse, eclipse-plugin
Autorefactor
Eclipse plugin to automatically refactor Java code bases
Stars: ✭ 168 (+663.64%)
Mutual labels:  eclipse, eclipse-plugin
lite-xl-lsp
LSP Plugin for Lite XL editor
Stars: ✭ 112 (+409.09%)
Mutual labels:  language-server-protocol, lsp-client
eclox
Eclox is a simple doxygen frontend plug-in for eclipse. It aims to provide a slim and sleek integration of the code documentation process into Eclipse.
Stars: ✭ 32 (+45.45%)
Mutual labels:  eclipse, eclipse-plugin
Google Cloud Eclipse
Google Cloud Platform plugin for Eclipse
Stars: ✭ 75 (+240.91%)
Mutual labels:  eclipse, eclipse-plugin
So Eclipse Plugin
Eclipse plugin that enables you to get answers from Stack Overflow directly to your IDE 🔥
Stars: ✭ 84 (+281.82%)
Mutual labels:  eclipse, eclipse-plugin
tower-lsp
Language Server Protocol implementation written in Rust
Stars: ✭ 455 (+1968.18%)
Mutual labels:  language-server-protocol, lsp

LXTK: Language Client/Server Toolkit Build

LXTK is an open source toolkit for implementing language clients talking to language servers according to the Language Server Protocol (LSP). Currently, it targets Java and Eclipse IDE, and as such, sits between Eclipse LSP4J and Eclipse LSP4E in its abstraction level: it is built using LSP4J, while LSP4E could in theory have been built using LXTK. In other words, it provides a higher level of abstraction than LSP4J and more flexibility than LSP4E.

Why LXTK?

  • Object-oriented: Can be incrementally specialized in numerous ways to cater for different requirements.

  • Not opinionated: Provides a set of bricks combinable to a complete structure that is right for you.

  • API centric: Every aspect can be controlled, extended or replaced as needed, reliably.

  • Robust: Shown to be reliable and effective by being used in a widely distributed commercial product.

  • Fully dynamic: Support for dynamic capability registration built right into the core.

  • Integrated with Eclipse Handly: Can be used to build a handle-based model as a pillar for an Eclipse-based IDE.

  • Comes with realistic examples: Includes JSON and TypeScript sample editors.

Features

The current LXTK version (0.3) provides client-side support for the following LSP features:

LXTK 0.3 does not support features introduced in LSP 3.17 or above.

Architectural Overview

Currently, there are two main architectural layers in LXTK:

  • LXTK Core Framework

  • LXTK Integration for Eclipse (LX4E)

LXTK Core Framework (org.lxtk bundle) is a Java class library for building LSP clients. It is built on top of LSP4J. Rather than exposing LSP4J services directly, LXTK provides its own service layer. This layer is somewhat similar to the Extension API of Visual Studio Code, but is tailored specifically to LSP. In particular, its API directly reuses protocol data types of LSP4J. The Core Framework can be used in any Java-based client (Eclipse, IntelliJ, etc.)

LXTK Integration for Eclipse (LX4E) is subdivided into the Core layer (org.lxtk.lx4e bundle) and the UI layer (org.lxtk.lx4e.ui bundle). LX4E is not a tool, i.e. it does not provide a generic LSP client for Eclipse. Instead, it provides a platform for building Eclipse-based development tools using LSP-based services provided by the Core Framework. To that end, it extends the Core Framework and integrates it with the Eclipse Platform. Although LX4E can be used for building a generic LSP client for Eclipse, its main goal is to facilitate tight integration of specific language servers in a full-featured custom Eclipse-based IDE.

LX4E includes several examples (org.lxtk.lx4e.examples.* bundles) that demonstrate main aspects of its usage.

For an overview of the API provided by LXTK Core Framework and LX4E, please see the Javadocs for the exported packages of the respective bundles.

Developer Resources

  • Building: How to build LXTK locally.

  • Contributing: How to report bugs, set up a developer workspace, issue pull requests, etc.

Contacts

License

LXTK is licensed under the Eclipse Public License 2.0. See LICENSE for the full license text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].