Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Improving the development experience with langu...

Improving the development experience with language servers

Providing a state of the art development experience greatly contributes to Ruby’s goal of making developers happy. A complete set of editor features can make a big difference in helping navigate and understand our Ruby code. Let’s explore a modern way of enhancing editor functionality: the language server protocol (LSP). What it is, how to implement it and how an LSP server like the Ruby LSP can make writing Ruby even better.

Vinicius Stock

December 07, 2022
Tweet

More Decks by Vinicius Stock

Other Decks in Technology

Transcript

  1. Vinicius Stock Senior dev @ Ruby DX team Shopify Twitter:

    @vinistock GitHub: @vinistock https://vinistock.com
  2. initialize textDocument/ didOpen textDocument/ foldingRange Language server Editor (Client) capabilities

    Activate language server Open fi le foo.rb Ranges Edit foo.rb textDocument/ didChange Ranges textDocument/ foldingRange
  3. Synchronize text edits Parse Folding range Document symbol Document link

    Semantic highlighting Inlay hint Selection range AST
  4. Folding range Document symbol Document link Semantic highlighting Inlay hint

    Selection range Hover Format on type Document highlight Format on save Diagnostics Code actions