Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

IntelliJ Scala Plugin Agenda  Why do we need it  What's inside  What's next

Slide 3

Slide 3 text

Do we need an IDE for Scala?

Slide 4

Slide 4 text

Can't we just use Notepad? Rationale

Slide 5

Slide 5 text

Can't we just use Notepad? Rationale 

Slide 6

Slide 6 text

Is it always the right tool? Rationale ?

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

What's already available?

Slide 9

Slide 9 text

Syntax highlighting Features

Slide 10

Slide 10 text

Syntax highlighting Features Implicit conversion

Slide 11

Slide 11 text

Syntax highlighting Features By-name argument Implicit conversion

Slide 12

Slide 12 text

Syntax highlighting Features By-name argument Implicit conversion Deprecated method

Slide 13

Slide 13 text

Syntax highlighting Features Injected language By-name argument Implicit conversion Deprecated method

Slide 14

Slide 14 text

Error highlighting  Ordinary:  Type-aware:  Quick-fixes: Features

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Language injection  Pattern-based:  Via parameter annotation:  Via value annotation: Features

Slide 17

Slide 17 text

Dark color schemes Features

Slide 18

Slide 18 text

Language-aware editor  Brace balancing:  Entities selection:  Code folding: Features

Slide 19

Slide 19 text

Formatting Features

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Type Info Features

Slide 23

Slide 23 text

Type Info Features

Slide 24

Slide 24 text

Parameter info Features

Slide 25

Slide 25 text

Documentation look-up Features

Slide 26

Slide 26 text

Definition look-up Features

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Refactoring  Rename  Introduce variable  Inline variable  Extract method  Introduce parameter Features

Slide 29

Slide 29 text

Rename Features

Slide 30

Slide 30 text

Introduce variable Features

Slide 31

Slide 31 text

Inline variable Features

Slide 32

Slide 32 text

Extract method Features

Slide 33

Slide 33 text

Introduce parameter Features

Slide 34

Slide 34 text

Java-to-Scala conversion Features

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

TODO

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

Thank you!