Code Monkey home page Code Monkey logo

language-servers's Introduction

language-servers

CircleCI Download

A collection of implementations for the Microsoft Language Server Protocol

Included projects

groovy-language-server

A groovy implementation of the protocol. Uses the Java API definition in typefox/ls-api

language-server-commons

A framework that makes writing additional light-weight language-servers easier.

Dev Setup

Getting started

  • git clone <repo link>
  • cd language-servers
  • ./gradlew eclipse This generates eclipse projects
  • Import projects into eclipse

Building and Testing

  • ./gradlew build Compiles, runs tests, checkstyle and findbugs
  • ./gradlew test Runs all unit tests
  • ./gradlew publishToMavenLocal Creates jars in your Maven local repository

Debug

  • ./gradlew clean cleanEclipse Deletes gradle generated files

language-servers's People

Contributors

ags799 avatar bavardage avatar darora avatar gatesn avatar gpittarelli avatar gracew avatar natgabb avatar nmiyake avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

language-servers's Issues

Split up GroovycWrapper

One part should implement getting compilation errors and generating an AST, and another part should be parsing symbols, references, etc from a given AST.

Find references in expressions

Ex:
SomeObject obj = SomeObject.SOMETHING
Be able to find SomeObject on the right when trying to find references for this type.

Fix slf4j logs

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

Method local variables not found in symbols

Locally declared variables in methods are not added to symbols.
Ex:

int getAt(int idx) {
    def something = "Hello"
    return idx
}

idx is found but something is not

This will be a problem when we implement find all references, and when we want to find the correct AST node for a position.

Implement didClose fully

If we are saving the changes from didChange in some way, we should reset any "dirty" changes when we close the document without saving it.

Related to #19

Figure out when first compilation and publishDiagnostics should happen

Right now it is triggered when the client sends any of these:

  • didChangeWatchedFiles
  • didOpen
  • didChange
  • didClose
  • didSave

But is it weird behavior that you don't get compilation errors until you do one of these? For example, you should be able to get workspace symbols without opening a file. What is the expected workflow from the client after initializing? If it is expected that they would send a didChangeWatchedFiles at the start then it wouldn't be a problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.