SlideShare a Scribd company logo
Scala plugin for IntelliJ IDEA

                           Pavel Fatin
                Alexander Podkhalyuzin

                   ScalaDay Spb, 2011
Agenda


   IntelliJ Scala Plugin
            Why do we need it
            What's inside
            What's next
Do we need an IDE
    for Scala?
Rationale


   Can't we just use Notepad?

Recommended for you

MBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetricaMBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetrica

Mobile analytics – trust but verify

mobile appsmblt16appmetrica
MBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, PureMBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, Pure

Mobile technologies in SexTech: present and future

MBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank OnlineMBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank Online

5 stars and 13 million of users. How we develop the biggest bank in Russia

mobile application developmentmobile marketingapplication
Rationale


   Can't we just use Notepad?




                                
Rationale


   Is it always the right tool?




                                  ?
Rationale


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

Recommended for you

MBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba MobileMBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba Mobile

This document discusses Alibaba Mobile's ecosystem and strategies for launching products in various markets. It covers Alibaba's entrance into the mobile internet world through smartphones, operating systems, and application stores/browsers. It then discusses how Alibaba builds its ecosystem through big data, content monetization, and various traffic sources. The document outlines Alibaba's strategies for global markets and provides real examples of products launched in India and Indonesia, including services related to cricket, music, video, Facebook notifications, e-commerce, and news.

mobile marketingappsucbrowser
MBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha RestoranyMBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha Restorany

The Dining Man: how does Afisha Restaurants change the behavioral patterns of choice and payments in cafes and restaurants. Based on the real experience of Project Manager

mobilemobile marketingapplication
Resharper - Next Steps
Resharper - Next StepsResharper - Next Steps
Resharper - Next Steps

"You know the basics of Resharper. In this presentation I show you what's next." I gave this presentation as a follow up on an earlier one that showed the very basics of Resharper. This time I demonstrated things like code analysis, project-level assistance, unit testing, code generation, navigation and search and templates.

refactoringunit testingcode analysis
Features


   Syntax highlighting
Features


   Syntax highlighting




                         Implicit conversion
Features


   Syntax highlighting



                                       By-name argument




                         Implicit conversion
Features


   Syntax highlighting



                                       By-name argument




                         Implicit conversion




                                   Deprecated method

Recommended for you

Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2

The document outlines the plan for a presentation on Xtext, Xbase, and Xtend. The presentation will include an introduction to Xtext 2.0 and a hands-on exercise to develop a domain-specific language. It will also cover Xbase and how to integrate it into a DSL, and demonstrate writing a code generator with Xtend.

xbaselanguagejava
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z

This document introduces simplified scripting, a new feature in Rational Functional Tester (RFT) version 8.1. It allows creating test scripts using a visual and natural language approach without needing to know a programming language. Simplified scripts contain easy to understand English statements and utilize application screenshots and object highlighting. The feature streamlines test authoring, modification, and execution. Advanced options allow inserting Java code snippets or modules into the generated test code. A demo is provided to showcase simplified scripting capabilities.

 
by IBM
RFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj ZRFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj Z

This document introduces simplified scripting, a new feature in Rational Functional Tester (RFT) version 8.1. It allows creating test scripts using a visual and natural language approach without needing to know a programming language. Simplified scripts contain easy to understand English statements and utilize application screenshots and object highlighting. The feature streamlines test authoring, modification, and execution. Advanced options allow inserting Java code snippets or modules into the generated test code. A demo is provided to showcase simplified scripting capabilities.

Features


   Syntax highlighting

                         Injected language



                                       By-name argument




                         Implicit conversion




                                   Deprecated method
Features


   Error highlighting
          Ordinary:




          Type-aware:




          Quick-fixes:
Features


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


   Language injection
          Pattern-based:



          Via parameter annotation:



          Via value annotation:

Recommended for you

LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011

This document discusses creating a plan for ongoing internationalization and localization efforts. It recommends conducting an initial assessment of code and requirements to understand what is and isn't internationalized. It also suggests creating an actionable plan with tasks, schedule, staffing, and costs. For ongoing efforts, it advises measuring internationalization as part of regular development processes, leveraging tools to catch bugs early, and focusing on expertise through training and collaboration with specialists.

software internationalization
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review

This document summarizes Richard Huang's work developing semi-automatic code review tools and services. It describes his rails_best_practices gem for analyzing Ruby on Rails code and suggesting refactors. It also outlines his railsbp.com online service for automatically reviewing code, collaborating with others, and tracking review histories. The document proposes extending the gem to add new code checking capabilities and making both the gem and service open source.

Scala: An experience report
Scala: An experience reportScala: An experience report
Scala: An experience report

This document reports on experiences using Scala for a project. It discusses whether Scala sped up development as hoped, if the project should have been done in Java instead, and whether the Scala codebase was easier to maintain and extend than an equivalent Java one would have been. It also examines successful features of Scala used, including testing approaches, templating techniques, the domain model, traits, implicits, and options. Areas for improvement are identified, such as having fewer tests and better code discoverability during refactoring.

scala
Features


   Dark color schemes
Features


   Language-aware editor
          Brace balancing:



          Entities selection:



          Code folding:
Features


   Formatting
Features


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

Recommended for you

New relic
New relicNew relic
New relic

This document summarizes New Relic's key features including out-of-the-box monitoring of real user performance, server monitoring, and proactive notifications. It also discusses advanced features for deeper performance analytics and complementary tools for monitoring jobs. The presentation concludes with discussing New Relic's backlog including custom tiers, deployment notifications, and custom alerts.

new relicmonitoring
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSI

Slides from RuPy 2009 talk "Compiled Websites with Plone, Django, Xapian and SSI" by Łukasz Langa and Wojciech Lichota.

plone django apache ssi
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)

The document discusses the Spoofax language workbench, which allows for integrated development environments to be defined along with domain-specific languages. It enables language definitions to specify transformations for parsing, static analysis, model-to-model transformations, code generation, and editor services like syntax highlighting and error marking. This is done through declarative syntax definitions and rewriting rules, aiming to make language development and IDE creation cheaper and more unified.

spoofaxsglroopsla
Features


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


   Type Info
Features


   Type Info
Features


   Parameter info

Recommended for you

KnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePointKnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePoint

KnowledgeLake enables businesses to leverage their existing SharePoint platform to deliver a truely scalable ECM solution at a fraction of the cost

Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow

This document summarizes a Dev Workflow that progresses from a solo developer workflow to incorporating teams and continuous integration practices. It begins with the downsides of a solo workflow like stress and lack of source control/deployment processes. It then shows how small teams improve workflow but still lack aspects like asynchronous production and scalability. The document advocates for leveraging libraries, version control, continuous integration, code reviews and deployment systems to facilitate large team "big team workflows" with features branches, testing environments and quality assurance practices.

workflowdevelopmentgit
Java Starting
Java StartingJava Starting
Java Starting

Presented by: N.V.Rajasekhar Reddy www.technolamp.co.in Want more interesting... Watch and Like us @ https://www.facebook.com/Technolamp.co.in subscribe videos @ http://www.youtube.com/user/nvrajasekhar

java basics jvm jre ide
Features


   Documentation look-up
Features


   Definition look-up
Features


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


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

Recommended for you

Scala & Swagger at Wordnik
Scala & Swagger at WordnikScala & Swagger at Wordnik
Scala & Swagger at Wordnik

A deck on the practical reasons why Wordnik moved to the Scala programming language. Also covered is the Swagger REST API framework which is available at http://swagger.wordnik.com

resthtml5java
Aop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHPAop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHP

This document discusses various techniques for metaprogramming, code generation, and dependency injection in PHP. It begins with an introduction to the speaker and agenda. It then covers concepts like the SOLID principles, dependency injection, service locators, reflection, annotations, and metadata. Specific frameworks and libraries discussed include Pimple, Symfony DI, Doctrine annotations, and Zend Reflection. Use cases presented include generating unit tests, proxies for performance, CRUD code, and more. The document also discusses topics like events, forms, questions, and thanks the audience.

phpmetaprogrammingsymfony 2
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...

apidays LIVE Paris 2021 - APIs and the Future of Software December 7, 8 & 9, 2021 Inside API delivery Pipeline, the checklist! François Lasne, Director Open API & Open Banking at Finastra

api products and monetizationapi products & marketsapi monetization
Features


   Rename
Features


   Introduce variable
Features


   Inline variable
Features


   Extract method

Recommended for you

What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5

Slides from TechEd Africa 2013 for both part 1 & part 2 for the talk: What’s new in Visual Studio 2012 & .NET 4.5

visual studio 2012c#visual studio
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components

The document discusses coding custom components for Pipeline Pilot. It explains that components can integrate new functionality and outlines the component model involving initialization, processing, and finalization states. It also categorizes common component types and describes accessing context, data records, and parameters through component APIs for different programming languages.

ats3accelrys tech summit
Angular js training
Angular js training Angular js training
Angular js training

Angular JS Institute: NBITS is the best Angular JS Online/Classroom Training Institute in Hyderabad. We provide training from best real time industry experts in Angular 2, Angular 4, Angular 5,Node js, mean stack courses through online and Classroom with Lab facility.

angular trainingangular classroom trainingangular online training
Features


   Introduce parameter
Features


   Java-to-Scala conversion
Features


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

Recommended for you

Angular js Training in Hyderabad
Angular js Training in HyderabadAngular js Training in Hyderabad
Angular js Training in Hyderabad

Angular JS Institute: NBITS is the best Angular JS Online/Classroom Training Institute in Hyderabad.We provide training from best real time industry experts in Angular 2,Angular 4,Angular 5,Node js, mean stack courses through online and Classroom with Lab facility

angular js training in hyderbadangular js online trainingangular 4 training in hyderabad
Rx Java architecture
Rx Java architectureRx Java architecture
Rx Java architecture

RxJava is a library for composing asynchronous and event-based programs using observable sequences. It provides features for concurrency, request management, data flow manipulation, and error handling. RxJava uses streams and new objects like Schedulers, Subscriptions, and Subjects. It can be used with techniques like retained fragments, cached observables, binding to lifecycles, and services to handle configuration changes and loading data.

android developmente-legionmobile development
Rx java
Rx javaRx java
Rx java

The document discusses the Observer pattern and RxJava. RxJava allows for concurrency, data flow manipulation, and error handling through its use of observables and subscribers. It provides links to documentation on RxJava operators and a blog post that helps explain RxJava fundamentals.

android developmente-legionmobile development
Roadmap


  Tasks
         Fix move refactoring
         Smart Step in debugger
         Evaluate Expression in debugger
         Scalate support
         Scaladoc support
Thank you!

More Related Content

Viewers also liked

Google I/O туда и обратно.
Google I/O туда и обратно.Google I/O туда и обратно.
Google I/O туда и обратно.
Alexey Zinoviev
 
MBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, AviasalesMBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, Aviasales
e-Legion
 
MBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500StartupsMBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500Startups
e-Legion
 
MBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetricaMBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetrica
e-Legion
 
MBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, PureMBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, Pure
e-Legion
 
MBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank OnlineMBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank Online
e-Legion
 
MBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba MobileMBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba Mobile
e-Legion
 
MBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha RestoranyMBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha Restorany
e-Legion
 

Viewers also liked (8)

Google I/O туда и обратно.
Google I/O туда и обратно.Google I/O туда и обратно.
Google I/O туда и обратно.
 
MBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, AviasalesMBLT16: Andrey Maslak, Aviasales
MBLT16: Andrey Maslak, Aviasales
 
MBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500StartupsMBLT16: Marvin Liao, 500Startups
MBLT16: Marvin Liao, 500Startups
 
MBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetricaMBLT16: Alexander Lukin, AppMetrica
MBLT16: Alexander Lukin, AppMetrica
 
MBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, PureMBLT16: Elena Rydkina, Pure
MBLT16: Elena Rydkina, Pure
 
MBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank OnlineMBLT16: Andrey Bakalenko, Sberbank Online
MBLT16: Andrey Bakalenko, Sberbank Online
 
MBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba MobileMBLT16: Vincent Wu, Alibaba Mobile
MBLT16: Vincent Wu, Alibaba Mobile
 
MBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha RestoranyMBLT16: Dmitriy Geranin, Afisha Restorany
MBLT16: Dmitriy Geranin, Afisha Restorany
 

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

Resharper - Next Steps
Resharper - Next StepsResharper - Next Steps
Resharper - Next Steps
Timmy Kokke
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Dr. Jan Köhnlein
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
IBM
 
RFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj ZRFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj Z
Roopa Nadkarni
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
Lingoport (www.lingoport.com)
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review
Richard Huang
 
Scala: An experience report
Scala: An experience reportScala: An experience report
Scala: An experience report
Mark Needham
 
New relic
New relicNew relic
New relic
Pablo Molnar
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSI
Wojciech Lichota
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
lennartkats
 
KnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePointKnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePoint
Adam Sherwood
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow
Peter Chester
 
Java Starting
Java StartingJava Starting
Java Starting
Raja Sekhar
 
Scala & Swagger at Wordnik
Scala & Swagger at WordnikScala & Swagger at Wordnik
Scala & Swagger at Wordnik
Tony Tam
 
Aop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHPAop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHP
Serge Smertin
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5
Robert MacLean
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components
BIOVIA
 
Angular js training
Angular js training Angular js training
Angular js training
Rajitha D
 
Angular js Training in Hyderabad
Angular js Training in HyderabadAngular js Training in Hyderabad
Angular js Training in Hyderabad
CHENNAKESHAVAKATAGAR
 

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

Resharper - Next Steps
Resharper - Next StepsResharper - Next Steps
Resharper - Next Steps
 
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2Pragmatic DSL Design with Xtext, Xbase and Xtend 2
Pragmatic DSL Design with Xtext, Xbase and Xtend 2
 
2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z2 rft simplified_scripting_shinoj_z
2 rft simplified_scripting_shinoj_z
 
RFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj ZRFT Simplified Scripting- Shinoj Z
RFT Simplified Scripting- Shinoj Z
 
LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011LocWorld: Building an Internationalization Plan; October 2011
LocWorld: Building an Internationalization Plan; October 2011
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review
 
Scala: An experience report
Scala: An experience reportScala: An experience report
Scala: An experience report
 
New relic
New relicNew relic
New relic
 
Compiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSICompiled Websites with Plone, Django, Xapian and SSI
Compiled Websites with Plone, Django, Xapian and SSI
 
The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)The Spoofax Language Workbench (SPLASH 2010)
The Spoofax Language Workbench (SPLASH 2010)
 
KnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePointKnowledgeLake - ECM For SharePoint
KnowledgeLake - ECM For SharePoint
 
Coding Together - A Dev Workflow
Coding Together - A Dev WorkflowCoding Together - A Dev Workflow
Coding Together - A Dev Workflow
 
Java Starting
Java StartingJava Starting
Java Starting
 
Scala & Swagger at Wordnik
Scala & Swagger at WordnikScala & Swagger at Wordnik
Scala & Swagger at Wordnik
 
Aop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHPAop, Metaprogramming and codegeneration with PHP
Aop, Metaprogramming and codegeneration with PHP
 
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
apidays LIVE Paris 2021 - Inside API delivery Pipeline, the checklist! - Fran...
 
What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5What’s new in Visual Studio 2012 & .NET 4.5
What’s new in Visual Studio 2012 & .NET 4.5
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components
 
Angular js training
Angular js training Angular js training
Angular js training
 
Angular js Training in Hyderabad
Angular js Training in HyderabadAngular js Training in Hyderabad
Angular js Training in Hyderabad
 

More from e-Legion

Rx Java architecture
Rx Java architectureRx Java architecture
Rx Java architecture
e-Legion
 
Rx java
Rx javaRx java
Rx java
e-Legion
 
MBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, SpotifyMBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, Spotify
e-Legion
 
MBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, WunderlistMBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, Wunderlist
e-Legion
 
MBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, SoundcloudMBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, Soundcloud
e-Legion
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Co
e-Legion
 
MBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, PostforpostMBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, Postforpost
e-Legion
 
MBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, ParallelsMBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, Parallels
e-Legion
 
MBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DITMBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DIT
e-Legion
 
MBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, LitresMBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, Litres
e-Legion
 
MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box
e-Legion
 
MBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, MicrosoftMBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, Microsoft
e-Legion
 
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
e-Legion
 
MBLTDev15: Ivan Kozlov, Aviasales
MBLTDev15: Ivan Kozlov, AviasalesMBLTDev15: Ivan Kozlov, Aviasales
MBLTDev15: Ivan Kozlov, Aviasales
e-Legion
 
MBLTDev15: Ilya Krasilshchik, Meduza.io
MBLTDev15: Ilya Krasilshchik, Meduza.ioMBLTDev15: Ilya Krasilshchik, Meduza.io
MBLTDev15: Ilya Krasilshchik, Meduza.io
e-Legion
 
MBLTDev15: Svetlana Sonina, STS Media
MBLTDev15: Svetlana Sonina, STS MediaMBLTDev15: Svetlana Sonina, STS Media
MBLTDev15: Svetlana Sonina, STS Media
e-Legion
 
MBLTDev15: Marius Racwitz, Realm
MBLTDev15: Marius Racwitz, RealmMBLTDev15: Marius Racwitz, Realm
MBLTDev15: Marius Racwitz, Realm
e-Legion
 
MBLTDev15: Denis Legezo, Kaspersky Lab
MBLTDev15: Denis Legezo, Kaspersky LabMBLTDev15: Denis Legezo, Kaspersky Lab
MBLTDev15: Denis Legezo, Kaspersky Lab
e-Legion
 
MBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, ApairyMBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, Apairy
e-Legion
 
MBLTDev15: Sergey Semenov, Trucker Path
MBLTDev15: Sergey Semenov, Trucker Path MBLTDev15: Sergey Semenov, Trucker Path
MBLTDev15: Sergey Semenov, Trucker Path
e-Legion
 

More from e-Legion (20)

Rx Java architecture
Rx Java architectureRx Java architecture
Rx Java architecture
 
Rx java
Rx javaRx java
Rx java
 
MBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, SpotifyMBLTDev15: Hector Zarate, Spotify
MBLTDev15: Hector Zarate, Spotify
 
MBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, WunderlistMBLTDev15: Cesar Valiente, Wunderlist
MBLTDev15: Cesar Valiente, Wunderlist
 
MBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, SoundcloudMBLTDev15: Brigit Lyons, Soundcloud
MBLTDev15: Brigit Lyons, Soundcloud
 
MBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&CoMBLTDev15: Egor Tolstoy, Rambler&Co
MBLTDev15: Egor Tolstoy, Rambler&Co
 
MBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, PostforpostMBLTDev15: Alexander Orlov, Postforpost
MBLTDev15: Alexander Orlov, Postforpost
 
MBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, ParallelsMBLTDev15: Artemiy Sobolev, Parallels
MBLTDev15: Artemiy Sobolev, Parallels
 
MBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DITMBLTDev15: Alexander Dimchenko, DIT
MBLTDev15: Alexander Dimchenko, DIT
 
MBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, LitresMBLTDev: Evgeny Lisovsky, Litres
MBLTDev: Evgeny Lisovsky, Litres
 
MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box MBLTDev: Alexander Dimchenko, Bright Box
MBLTDev: Alexander Dimchenko, Bright Box
 
MBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, MicrosoftMBLTDev15: Konstantin Goldshtein, Microsoft
MBLTDev15: Konstantin Goldshtein, Microsoft
 
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
MBLTDev15: Anna Mikhina, Maxim Evdokimov, Tinkoff Bank
 
MBLTDev15: Ivan Kozlov, Aviasales
MBLTDev15: Ivan Kozlov, AviasalesMBLTDev15: Ivan Kozlov, Aviasales
MBLTDev15: Ivan Kozlov, Aviasales
 
MBLTDev15: Ilya Krasilshchik, Meduza.io
MBLTDev15: Ilya Krasilshchik, Meduza.ioMBLTDev15: Ilya Krasilshchik, Meduza.io
MBLTDev15: Ilya Krasilshchik, Meduza.io
 
MBLTDev15: Svetlana Sonina, STS Media
MBLTDev15: Svetlana Sonina, STS MediaMBLTDev15: Svetlana Sonina, STS Media
MBLTDev15: Svetlana Sonina, STS Media
 
MBLTDev15: Marius Racwitz, Realm
MBLTDev15: Marius Racwitz, RealmMBLTDev15: Marius Racwitz, Realm
MBLTDev15: Marius Racwitz, Realm
 
MBLTDev15: Denis Legezo, Kaspersky Lab
MBLTDev15: Denis Legezo, Kaspersky LabMBLTDev15: Denis Legezo, Kaspersky Lab
MBLTDev15: Denis Legezo, Kaspersky Lab
 
MBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, ApairyMBLTDev15: Kyle Fuller, Apairy
MBLTDev15: Kyle Fuller, Apairy
 
MBLTDev15: Sergey Semenov, Trucker Path
MBLTDev15: Sergey Semenov, Trucker Path MBLTDev15: Sergey Semenov, Trucker Path
MBLTDev15: Sergey Semenov, Trucker Path
 

Recently uploaded

Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 

Recently uploaded (20)

Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 

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

  • 1. Scala plugin for IntelliJ IDEA Pavel Fatin Alexander Podkhalyuzin ScalaDay Spb, 2011
  • 2. Agenda IntelliJ Scala Plugin  Why do we need it  What's inside  What's next
  • 3. Do we need an IDE for Scala?
  • 4. Rationale Can't we just use Notepad?
  • 5. Rationale Can't we just use Notepad? 
  • 6. Rationale Is it always the right tool? ?
  • 7. Rationale What makes us more productive?  Highlighting  Inspections  Code formatting  Auto-completion  Information look-up  Navigation  Refactoring  Integration
  • 9. Features Syntax highlighting
  • 10. Features Syntax highlighting Implicit conversion
  • 11. Features Syntax highlighting By-name argument Implicit conversion
  • 12. Features Syntax highlighting By-name argument Implicit conversion Deprecated method
  • 13. Features Syntax highlighting Injected language By-name argument Implicit conversion Deprecated method
  • 14. Features Error highlighting  Ordinary:  Type-aware:  Quick-fixes:
  • 15. Features Inspections  Unused symbol  Variable could be value  Redundant return  Syntactic sugar  Method signature inspections
  • 16. Features Language injection  Pattern-based:  Via parameter annotation:  Via value annotation:
  • 17. Features Dark color schemes
  • 18. Features Language-aware editor  Brace balancing:  Entities selection:  Code folding:
  • 19. Features Formatting
  • 20. Features Code completion  Basic  Class name  Expected-type based  «Some»  Global member  Anonymous function
  • 21. Features Information look-up  Type info  Parameter info  Documentation look-up  Definition look-up
  • 22. Features Type Info
  • 23. Features Type Info
  • 24. Features Parameter info
  • 25. Features Documentation look-up
  • 26. Features Definition look-up
  • 27. Features Imports management  Import entity on completion  Auto-import unresolved symbol  Highlight unused imports  Optimize imports  Paste imports
  • 28. Features Refactoring  Rename  Introduce variable  Inline variable  Extract method  Introduce parameter
  • 29. Features Rename
  • 30. Features Introduce variable
  • 31. Features Inline variable
  • 32. Features Extract method
  • 33. Features Introduce parameter
  • 34. Features Java-to-Scala conversion
  • 35. Features Integrations  Java  JUnit / Specs / ScalaTest  Maven  Spring  Lift  SBT  FSC
  • 36. TODO
  • 37. Roadmap Tasks  Fix move refactoring  Smart Step in debugger  Evaluate Expression in debugger  Scalate support  Scaladoc support