JavaTXLanguageServer/README.md
2024-12-12 21:06:29 +00:00

2.2 KiB

JavaTXLanguageServer

This Repo contains the LanguageServer for JavaTX as well as various Clients to use it.
It uses the LSP4J Framework in Version 0.23.1.

Functionality

Currently the Language Server has the following functionalities:

  • Syntax-Check
  • Hovereffect that displays the current hovered Word
  • Autocomplete for ForLoops and Main Method.
  • Basic Autoformatting (removing every Space at the End of the Line)
  • Display Type of Methods with TypeInference

Project Structure

.
├── Client/
│   ├── VisualStudioCode                       -> Containing the Client for VS Code. In this Case a Extension. 
│   ├── Eclipse
│   ├── Intellij
│   └── ...
└── LanguageServer/
    └── src/main/java/de/dhbw/
        ├── compiler/                           -> Containing the JavaTX Compiler
        │   └── ... 
        ├── model/
        │   └── parseError/
        │       └── ...                         -> Containing Custom Parse-Errors.
        ├── parser/
        │   └── ...                             -> Containing an the JavaTX ANTLR Parser for Syntax-Checks.
        ├── helper/
        │   └── ...                             -> Containing Helper-Classes for the Language Server.
        ├── JavaTXLanguageServer.java           -> Orchestrator of the Language Server
        ├── JavaTXLanguageServerLauncher.java   -> Class to start the Language Server.
        ├── JavaTXTextDocumentService.java      -> Language-Server Features for a Single File
        └── JavaTXWorkspaceService.java         -> Language-Server Features for the Workspace

Usage

To use this Language Server you have to follow this steps:

  1. Package the LanguageServer with maven:package.
  2. Open the VS-Code Client and run npm install.
  3. change Path in extensions.ts to absolute Path of your packaged Jar-File that you packaged in Step 1. (Line 20 and 24)
  4. run npm run compile
  5. Go to Debug and Run the Extension.
  6. Press F1 and execute the Hello World Command.
  7. You can create .java Files which will be analysed by the Language Server.