Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Experimental Language Server Protocol support #79

Merged
merged 2 commits into from Mar 5, 2019

Conversation

wata727
Copy link
Contributor

@wata727 wata727 commented Feb 4, 2019

This PR introduces a new command steep langserver. This server communicates with a client via stdio according to the specification of Language Server Protocol v3.14.0.

As a first step, this experimental implementation only supports diagnostics at file change and open. This behavior has been confirmed with VSCode and RubyMine, and you can try it immediately.

untitled

This implementation is highly inspired by language_server-ruby. Therefore, this PR adds language_server-protocol-ruby as a new dependency. This library defines the LSP interface as a Ruby class, and it helps to parse header, assemble a request as JSON RPC format, etc.

ToDo

  • Add tests

@wata727
Copy link
Contributor Author

wata727 commented Feb 9, 2019

@soutaro This PR is ready to review (or merge).

@soutaro
Copy link
Owner

soutaro commented Mar 4, 2019

Thank you for great pull request @wata727 ! 🎉
I will merge the pull request soon, but I have some other changes to release before this.

Copy link
Owner

@soutaro soutaro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👏 🎉 🚀

@soutaro
Copy link
Owner

soutaro commented Mar 4, 2019

Note for execution in RubyMine:

Add RawCommand server definition with rb extension and zsh -l -i -c 'bundle exec steep langserver' as its command. We have to use the shell to run bundler in the case we are using rbenv.

@soutaro soutaro merged commit 5991e4f into soutaro:master Mar 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants