Improving the development experience with language servers
summary
A new Ruby LSP gem plus a VS Code extension implements the Language Server Protocol over JSON stdio, bringing concrete features not promises: folding ranges computed by parsing to an AST (syntax_tree) and traversing it with a visitor, diagnostics and code actions powered by RuboCop, and formatters that fall back to syntax_tree. The server runs per workspace, merges with other servers (Solargraph), supports format-on-save/type, inlay hints and document highlights, and already works with editors like VSCode and Neovim.
AI-written summary · about
chapters (16)
- 0:00Introduction
- 1:01Understanding language servers
- 3:17Problems with language plugins
- 4:27Language Server Protocol LSP
- 6:53Requests and Notifications
- 8:09Interactions between editor and server
- 10:14The Ruby LSP
- 10:49Other features
- 12:16How it works
- 14:02How to Implement
- 14:51Analysis
- 15:53Parsing
- 23:18Nonpositional requests
- 23:54Currently supported features
- 25:17Future features
- 26:08Questions
related talks
39mIDE development with Ruby
36mExperiences Building a Language Server Protocol Plugin
32mRefactoring via the Language Server Protocol
42mUsing SourceKit LSP to Read Code in the Browser
22mEclipse Che and the Language Server Protocol
22mELS - the Ember Language Server
44mDeveloping a Language Plugin: LSP versus the Joy of Learning
31mGraal-LSP: A Language Server Implementation with Polyglot Support for the GraalVM
