- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
Six Steps from Zero to IDE (flatMap(Oslo) and ScalaDays Berlin 2018)
展开查看详情
1 .Six steps from zero to IDE @olafurpg Watch this talk on YouTube
2 .“The Scala IDE situation is quite possibly the worst out of all the industrial languages in existence. They’re all terrible, especially VS Code or Atom. Just use IntelliJ and hope for the best.” — r/scala, 10 points
3 .Let’s build an IDE!
4 .How hard can it be?
5 . Pretty basic features • Work with my editor • Vim, Sublime Text, VS Code, Atom, Emacs, … • Work with my build tool • sbt, gradle, maven, pants, bazel, mill, cbt, … • Diagnostics • No spurious red squiggles!
6 . Pretty basic features • Goto definition • Project sources, Scala deps, Java deps, classfiles • Auto completions • Scope, auto-import, type members, extension methods • Refactorings • Rename, organize imports, insert type annotation, …
7 .Demo
8 .
9 . Rest of the talk • Language Server Protocol • “Zoo” of Scala language servers • Build Server Protocol • Conclusion
10 . Scala Java Rust Python Vim Sublime VS Code Atom Emacs IntelliJ
11 .Language Server Protocol Vim Scala Sublime VS Code Java Atom Rust Emacs IntelliJ Python
12 . Java Editor Scala
13 .JSON-RPC
14 . Wait, JSON? On every keystroke?
15 . Xi an editor for the next 20 years with with uncompromising performance
16 .
17 .LGTM, where do I sign up?
18 .How to build an IDE 1. 2. 1. Configure LSP 2. Implement the rest of the IDE
19 .Language Features
20 .textDocument/publishDiagnostics
21 .textDocument/publishDiagnostics
22 .textDocument/definition
23 .textDocument/definition
24 . SemanticDB Symbol: spire.math.Complex#real(). Range: 10:18-10:22 Role: REFERENCE
25 .textDocument/completions
26 .textDocument/completions
27 .textDocument/codeActions
28 .textDocument/codeActions
29 .