Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

How I Learned To Stop Worrying And Love LSP (An...

How I Learned To Stop Worrying And Love LSP (And Metals)

A talk given at ScalaUA '20 - Ukrainian annual conference on Scala and it's ecosystem.
Youtube link - https://www.youtube.com/watch?v=x7ey0ifcqAg

Avatar for Yuri Ostapchuk

Yuri Ostapchuk

September 13, 2021
Tweet

More Decks by Yuri Ostapchuk

Other Decks in Programming

Transcript

  1. HOW I LEARNED TO STOP WORRYING AND HOW I LEARNED

    TO STOP WORRYING AND LOVE LSP LOVE LSP AND EMACS 😜 AND EMACS 😜 1
  2. TABLE OF CONTENTS TABLE OF CONTENTS Intro Why should you

    care? What is LSP? Set up Usage Caveats and Tips What's next? 2 . 1
  3. WHY I WANT TO SHARE IT WITH YOU WHY I

    WANT TO SHARE IT WITH YOU 3 . 2
  4. WHY I WANT TO SHARE IT WITH YOU WHY I

    WANT TO SHARE IT WITH YOU Story from the guy who is actually happy and uses something else then IntelliJ 3 . 2
  5. We spend more then 50% of time either coding or

    reading the code "Can I use Emacs for most of the stuff?" 3 . 3
  6. We spend more then 50% of time either coding or

    reading the code "Can I use Emacs for most of the stuff?" "Emacs+LSP! This is what I was looking for!" 3 . 3
  7. IT'S NOT IDEAL IT'S NOT IDEAL Not everything works as

    I would like it to work Where LSP doesn't work, Emacs backs up. 3 . 4
  8. WHO AM I AND WHAT I DO WHO AM I

    AND WHAT I DO Data engineer / Team Lead at With Emacs 3+ years With LSP 0,5 year romexsoft.com 3 . 5
  9. CASE#1 CASE#1 You have recently switched to a new project

    or involving in other parts of the system on your project different language different tools different work ow … mental switch overhead 4 . 2
  10. CASE#2 CASE#2 You have a codebase of 10+ laguages you

    should navigate through keep around 3/4/5 different editors/IDEs switching context blowing up your hardware 4 . 3
  11. 3 3 WHAT IS LSP? WHAT IS LSP? Language Server

    Protocol Common protocol between language and editor 5 . 1
  12. 3 3 WHAT IS LSP? WHAT IS LSP? Language Server

    Protocol Common protocol between language and editor IDE-like functionality speci cation hover / inspection / doc goto / navigation / nd symbol completion code-check / diagnostics run/debug … 5 . 1
  13. Metals metals binary sbt and bloop set up (optional) LSP

    in Emacs lsp-mode lsp-ui lsp-treemacs company-lsp flycheck dap-mode … https://scalameta.org/metals/ 6 . 1
  14. LSP TIPS LSP TIPS Navigation doesn't always work suggest: LSP

    navigation for local / workspace quick look keep major lib sources checked out on side 8 . 2
  15. Scala/sbt keep hot sbt session for bloopInstall manage LSP sessions

    explicitly LSP doesn't work for sbt project les 8 . 6
  16. Vanilla Emacs is too raw to be used out of

    the box You need to learn a little Elisp anyway (even with LSP clean install) 8 . 11
  17. Bindings, completion evil everywhere evil-leader and <space> normal mode and

    <space> as dispatcher whichkey and help hydra ivy 8 . 12
  18. 7 7 WHAT'S NEXT? WHAT'S NEXT? get Metals & LSP

    - get Emacs - get my con g - scalameta.org/metals/ www.gnu.org/software/emacs/download.html github.com/thatwist/.emacs.d 9 . 1