Code completion in ExtendJ using LSP Daniel Tovesson Why LSP? - - - PowerPoint PPT Presentation

code completion in extendj using lsp
SMART_READER_LITE
LIVE PREVIEW

Code completion in ExtendJ using LSP Daniel Tovesson Why LSP? - - - PowerPoint PPT Presentation

Code completion in ExtendJ using LSP Daniel Tovesson Why LSP? - Programming language-specific features - Just one language server needed - Easier for vendors - Growing support


slide-1
SLIDE 1

Code completion in ExtendJ using LSP

Daniel Tovesson

slide-2
SLIDE 2

Why LSP?

  • Programming language-specific features
  • Just one language server needed
  • Easier for vendors
  • Growing support

https://code.visualstudio.com/api/language-extensions/language-server-extension-gui de

slide-3
SLIDE 3

What is the Language Server Protocol?

  • Messaging protocol between client and server
  • Language server
  • IDE plugin/extension
  • JSON-based
  • Flexible way to implement high-level support in an IDE
  • Code completion
  • Hover tooltips
  • Jump-to-definition
  • Diagnostics
  • and more…
  • Developed by Microsoft
slide-4
SLIDE 4

Adding a language server to your IDE

  • Eclipse
  • About 20 lines of code
  • Java
  • Sublime Text
  • About 20 lines of code
  • JSON
  • Visual Studio Code
  • About 120 lines of code
  • TypeScript
  • Vim
  • About 70 - 300 lines of code
  • Vim Script
slide-5
SLIDE 5

https://medium.com/ballerina-techblog/implementing-a-language-server-how-hard-can-it-be-part-1-introduction-c915d2437 076

slide-6
SLIDE 6
slide-7
SLIDE 7

Background

  • Based on EDAN70 (Language Server Protocol for ExtendJ)
  • Error checking
  • Eclipse and Sublime Text
  • New feature: code completion
slide-8
SLIDE 8

Implementation

  • Code completion in ExtendJ
  • Cursor position
  • Identifier
  • Scope
  • Variables
  • Filter
  • Problems/limitations
slide-9
SLIDE 9

Result

slide-10
SLIDE 10

Thank you for listening