Павел Фатин и Александр Подхалюзин «scala plugin for intellij idea»

38
Pavel Fatin Alexander Podkhalyuzin ScalaDay Spb, 2011 Scala plugin for IntelliJ IDEA

Upload: e-legion

Post on 20-Jun-2015

889 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Pavel FatinAlexander Podkhalyuzin

ScalaDay Spb, 2011

Scala plugin for IntelliJ IDEA

Page 2: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

IntelliJ Scala Plugin

Agenda

Why do we need it What's inside What's next

Page 3: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Do we need an IDEfor Scala?

Page 4: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Can't we just use Notepad?

Rationale

Page 5: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Can't we just use Notepad?

Rationale

Page 6: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Is it always the right tool?

Rationale

?

Page 7: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

What makes us more productive? Highlighting Inspections Code formatting Auto-completion Information look-up Navigation Refactoring Integration

Rationale

Page 8: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

What's already available?

Page 9: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Syntax highlighting

Features

Page 10: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Syntax highlighting

Features

Implicit conversion

Page 11: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Syntax highlighting

Features

By-name argument

Implicit conversion

Page 12: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Syntax highlighting

Features

By-name argument

Implicit conversion

Deprecated method

Page 13: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Syntax highlighting

Features

Injected language

By-name argument

Implicit conversion

Deprecated method

Page 14: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Error highlighting Ordinary:

Type-aware:

Quick-fixes:

Features

Page 15: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Inspections Unused symbol Variable could be value Redundant return Syntactic sugar Method signature inspections

Features

Page 16: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Language injection Pattern-based:

Via parameter annotation:

Via value annotation:

Features

Page 17: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Dark color schemes

Features

Page 18: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Language-aware editor Brace balancing:

Entities selection:

Code folding:

Features

Page 19: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Formatting

Features

Page 20: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Code completion Basic Class name Expected-type based «Some» Global member Anonymous function

Features

Page 21: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Information look-up Type info Parameter info Documentation look-up Definition look-up

Features

Page 22: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Type Info

Features

Page 23: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Type Info

Features

Page 24: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Parameter info

Features

Page 25: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Documentation look-up

Features

Page 26: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Definition look-up

Features

Page 27: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Imports management Import entity on completion Auto-import unresolved symbol Highlight unused imports Optimize imports Paste imports

Features

Page 28: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Refactoring Rename Introduce variable Inline variable Extract method Introduce parameter

Features

Page 29: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Rename

Features

Page 30: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Introduce variable

Features

Page 31: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Inline variable

Features

Page 32: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Extract method

Features

Page 33: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Introduce parameter

Features

Page 34: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Java-to-Scala conversion

Features

Page 35: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Integrations Java JUnit / Specs / ScalaTest Maven Spring Lift SBT FSC

Features

Page 36: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

TODO

Page 37: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Tasks Fix move refactoring Smart Step in debugger Evaluate Expression in debugger Scalate support Scaladoc support

Roadmap

Page 38: Павел Фатин и Александр Подхалюзин «Scala plugin for IntelliJ IDEA»

Thank you!