IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

TODO

DRAFT !


précédentsommairesuivant

I. Installation

I-A. Les différentes versions d'intelliJ

Vous pouvez télécharger IntelliJ à l'adresse suivante :
http://www.jetbrains.com/idea/download/index.html

I-A-1. La version Community

C'est la version communautaire d'IntelliJ. Elle est gratuite et le code source est disponible sous GitHub. Cette version contient toutes les fonctionnalités nécessaires pour créer un projet simple.

Avec cette version, vous allez pouvoir :

  • Créer un projet standard (Java, Scala, Groovy, Clojure)
  • Utiliser les outils de versionning : Git, Svn, Mercurial et Gradle
  • Utiliser des outils de build : Maven, Ant, Gradle et Gant
  • Faire des applications pour Android

I-A-2. La version Ultimate

C'est la version que nous avons testé dans cet article. Elle est disponible en version 30 jours d'évaluation.

Le prix d ' une licence personnelle est de 179 € HT et de 89 € pour une licence académique.
Pour plus d'informations, vous pouvez consulter ce lien :
www.jetbrains.com/idea/buy/index.jspwww.jetbrains.com/idea/buy/index.jsp

En plus des fonctionnalités offertes par la version communautaire, elle offre :

  • le support de frameworks tels que Spring, JEE, Play
  • le support de serveurs d'applications tels que JBoss, Tomcat, Weblogic …
  • le support de HTML, CSS, Javascript.

Vous pouvez comparer les fonctionnalités offertes par la version communautaire et la version Ultimate à l'adresse suivante :

http://www.jetbrains.com/idea/features/editions_comparison_matrix.html

I-B. Historique des versions d'Intellij

La version actuelle d'IntelliJ est la 12.1.

Pour plus de détails sur les nouveautés de la 12.1 :
http://www.jetbrains.com/idea/whatsnew/index.html

Nouveauté d'IntelliJ 11

  • Nouvelle interface.
  • Ajout du support pour Play Framework.
  • Ajout du support Groovy 2.0.
  • Intégration de Gradle.
  • Ajout du support pour CoffeeScript.
  • Ajout du support pour Grails 2.0.
  • Android UI layouts preview
  • Support du plein écran OS X Lion.
  • Amélioration du drag-n-drop.
  • Ajout du support des liens symboliques pour Linux.

Nouveauté d'Intellij 11.1

  • Amélioration des performances.
  • Ajout du support pour Subversion (SVN) 1.7.
  • Intégration d'Android Lint.
  • Meilleur intégration de Gradle.
  • EcmaScript 6 (Harmony).
  • Sybase and DB2 SQL dialects
  • Amélioration du setup des projets Flex.
  • Amélioration de l'interface Git

Nouveauté d'IntelliJ 12

  • Thème Darcula.
  • Tout nouveau mode de compilation.
  • Java 8.
  • Android UI Designer
  • Amélioration du support Spring.
  • Play 2.0 pour Java and Scala
  • Nouveau outil de database.
  • CloudFoundry and CloudBees.
  • Ajout d'un formattage de code intelligent.
  • Drools Expert.

I-C. Les plugins

I-C-1. Liste des plugins au démarrage

Lors de l'installation de la version Ultimate, IntelliJ nous propose une liste possible de plugins par défaut. On peut soit tous les sélectionner soit retiré ceux dont on sait que l'on utilisera pas. Voici une liste des plugins disponible au démarrage dans la version Ultimate :

Outils de build et gestionnaire de version : Ant support, ClearCase Integration, CVS Integration, Git, Github, hg4idea, Maven Integration, Maven Integration Extension, Perforce Integration, Gradle, Subversion Integration, Visual SourceSafe Integration, TFS Integration, Tapestry support

JEE : CDI support, Bean Validation Support, Java EE Integration, Java Server Pages Integration, JSF Support, JSR45 Integration

Jboss : Drools Support, JBoss Integration, JBoss jBPM, Seam Pageflow Support, Seam Support

Spring : Spring Batch, Spring Data, Spring Integration Patterns, Spring OSGi, Spring Roo Console, Spring Security, Spring Support, Spring Web Flow, Spring Web Services, Spring-AOP, DmServer support

Android : Android designer, Android support

Langage : AspectJ support, Base Cucumber, CoffeeScript, CSS Support, Cucumber pour Groovy, Cucumber pour Java, Groovy, JavaFX, JavaScript Debugger, JavaScript Intention Power Pack, JavaScript Support, CFML support, Flash/Flex Support

Cloud : Cloud Foundry Integration, CloudBees Integration, Google App Engine Integration, FreeMarker, HAML, HTML Tools, I18n for Java, Inspection-JS, J2ME, LESS support, QuirksMode, @AspectJ support, SQL support, W3C Validators true, YAML

Web Framework : GWT Support, Grails, Hibernate, Playframework Support, Persistence Frameworks Support, Struts 1.x, Struts 2

Code source : Coverage, Emma, Junit, TestNG, UML Support

IDE : Application Server view, Commander, Copyright, Byte Code viewer, Eclipse Integration, GenerateToString, Structural Search, ASP, IDEtalk, Inspection Gadgets, IntelliLang, Intention Power Pack, JarFinder, Plugin DevKit, Properties Support, Remote Hosts Access, Refactor-X, SSH Remote Run, UI Designer, UI Designer (Core), Task Management, Vaadin Support, Type Migration

Database : Database support, DSM Analysis

Web Application Server : Geronimo, GuiceyIDEA, Jetty Integration, Glassfish Integration, Resin Integration, Tomcat and TomEE Integration, WebSphere Integration, WebLogic Integration

Divers : REST Client true SASS support, Osmorc, Velocity support, WebServicesPlugin, XpathView, XSLT Support, XSLT-Debugger, ZKM-Unscramble

I-C-2. Plugin repository

IntelliJ fournit un repository centralisé qui contient la liste de tous les plugins pour intellij en version Ultimate et Community ( http://plugins.jetbrains.com/ ). L'avantage, c'est qu'il est unique donc si on cherche un plugin, c'est ici qu'il faut chercher !

I-C-3. Plugins indispensables

Si vous souhaitez avoir une liste de plugins indispensables pour Eclipse et IntelliJ, vous pouvez voir la présentation faite par Romain Maton sur "24 plugins chrono" où il liste des plugins très intéressants pour Eclipse et IntelliJ :

II. Présentation d'intelliJ

Dans cette partie, nous allons présenter l'interface d'IntelliJ avec les différents éléments qui la compose.

Image non disponible

Voici les différents éléments que nous allons décrire dans les parties qui suivent :

  • Zone 1 : Menu et barre d'outil
  • Zone 2 : Barre de navigation
  • Zone 3 : Barre de status
  • Zone 4 : L'éditeur
  • Zone 5 : Boîte à outil

II-A. Menu et barre d'outil

Image non disponible
  • Zone 1 : La barre de menu

La barre de menu contient tout ce qui est nécessaire pour ouvrir, créer des projets, faire du refactoring, exécuter et débugger des applications ainsi que la gestion du versionning …

  • Zone 2 : La toolbar

Cette toolbar contient les boutons qui duplique les commandes essentielles pour un accès plus rapide.

  • Zone 3 : Popup menus

Ce menu contient des commandes spécifiques à un projet.

  • Zone 4 : Context menus

Ces menus contiennent des commandes applicables pour un certain contexte.

II-B. Barre de navigation

La barre de navigation est une alternative rapide à la vue projet :

Image non disponible

Dans, l'exemple ci-dessus, la barre de navigation affiche les différents niveaux d'arborescences pour accéder à la classe Cat. Si on clique sur le répertoire Animal, on voit alors la liste des classes et interfaces de ce fichier.

II-C. Barre de status

Image non disponible

La barre de status indique le status courant de l'IDE et permet de modifier certains paramètres.

Voici les principaux icônes :

Image non disponible Permet d'afficher ou de cacher les barres d'outils windows.
Image non disponible Montre une description d'une commande en cours dans le menu principal, le context menu ou dans une barre à outil.
Image non disponible Si on clique dessus cela ouvre le task manager.
Image non disponible Permet de voir et de modifier l'encoding du fichier courant.
Image non disponible Hector icon.

Des icônes différents apparaissent selon les plugins utilisés. Par exemple, si on utilise Git, on verra un petit icône qui permet de sélectionner les branches de votre projet !

II-D. L'éditeur

Image non disponible
  • Zone 1 : l'éditeur

Cette zone permet d'éditer et de saisir son code source.

  • Zone 2 : Gutter bar

Cette zone fournit des informations additionnelles sur le code et affiche différents icônes qui montrent des points d'arrêts, la structure du code, le code folding …

  • Zone 3 : fenêtre de complétion

Lors de la saisie, une fenêtre de complétion s'ouvre pour aider à la complétion de noms, de fonctions …

  • Zone 4 : Documents tabs

Cette zone va contenir les fichiers en cours d'édition dans différents onglets.

Il est possible de naviguer facilement entre les différents fichiers à l'aide du raccourci ALT + GAUCHE/DROIT.

Il existe d'autres actions disponibles sur ces onglets. Pour cela, il suffit de faire un clic droit sur un des onglets.

Voici quelques exemples des possibilités offertes :

  • pin d'un fichier : empêche un fichier en cours d'édition d'être fermé automatiquement.
  • split d'une fenêtre : permet de séparer une fenêtre en deux.
  • ajout de favoris : il est possible de créer d'ajouter un fichier dans un groupe de favoris. Ensuite ce groupe sera disponible dans la boîte à outil « Favorites ».

La boîte à outil favorites est accessible à l'aide du raccourci ALT + 2

II-D-1. Validation/marker tabs

Cette barre située sur la droite affiche des couleurs en rapport avec votre code. Elle permet d'identifier rapidement les lignes qui contiennent des warnings, des erreurs, des TODO …

II-E. Boîte à outil

Image non disponible

II-E-1. La vue projet

C'est la vue qui va contenir l'arborescence du projet. Cette vue est très similaire à la vue projet d'éclipse. Dans cette vue, on peut par exemple utiliser des filtres pour afficher seulement les répertoires de tests. Pour cela, il suffit de cliquer dans la zone Projet et de choisir le scope Test..

De nombreuses options sont disponibles. Pour plus de détails, consultez
http://www.jetbrains.com/idea/webhelp/project-tool-window.html

II-E-2. La vue structure

Cette vue va afficher la liste des méthodes et attributs de la classe en cours d'édition.

Il est possible de paramétrer l'affichage dans cette vue à l'aide de filtre en cliquant sur l'icône de paramétrage. On peut par exemple choisir d'afficher ou non les membres private.

De plus afin d'identifier si plus facilement les différents éléments, IntelliJ utilise des symboles.

Voici quelques exemples :

Image non disponible Classe
Image non disponible Classe abstraite
Image non disponible Méthode

Pour la liste complète des symboles, vous pouvez consulter le lien suivant : http://www.jetbrains.com/resharper/webhelp/Reference__Symbol_Icons.html

Pour plus d'information, veuillez consulter le document d'IntelliJ sur la vue structure  : http://www.jetbrains.com/idea/webhelp/structure-tool-window-file-structure-popup.html

III. Support des langages

IntelliJ supporte énormément de langages (Java, Scala, Groovy, JavaScript, HTML, CSS, Ruby, Python, SQL, PHP …).

Il offre pour chacun de ses langages :

III-A. la complétion

Sous IntelliJ, il existe plusieurs types de complétions. Voici les principaux :

  • La complétion instantanée
    Image non disponible
  • La complétion par « Injection »

IntelliJ va reconnaître d'autres langages à l'intérieur de chaîne de caractère et proposé des complétions en fonction :

Image non disponible
  • La complétion en fonction du contexte

Sous IntelliJ, la complétion ne se limite pas au nom des méthodes et des classes :

Image non disponible

Pour voir une démo de la complétion, vous pouvez consulter ce lien :
http://www.jetbrains.com/idea/features/code_completion.html

Vous pouvez consulter cet article pour plus de détails sur la complétion :
http://jetbrains.dzone.com/articles/top-20-code-completions-in-intellij-idea

III-B. Navigation et recherche avancée

IntelliJ possède beaucoup de mécanisme pour faciliter la navigation et la recherche. Nous allons en montrer seulement trois dans cette partie.

Pour plus de détails sur la navigation et la recherche avancée, vous pouvez consulter ce lien :
http://www.jetbrains.com/idea/features/search_replace.html

III-B-1. Bookmark

Cette fonctionnalité vous permet de mettre en favoris une ligne de code et ainsi de pouvoir retourner dessus très rapidement.

Le raccourcis F11 vous permet d'ajouter un bookmark et le raccourcis SHIFT-F11 vous permet d'accéder à la liste des bookmarks.

III-B-2. Recherche par expression rationnelle

En plus des fonctions standards de recherche, IntelliJ fournit le moyen d'effectuer des recherches à l'aide d'expressions rationnelles et d'effectuer les remplacements correspondants.

Exemple :

Image non disponible

III-B-3. Recherche structurelle et remplacement

Cette fonctionnalité est accessible seulement en version Ultimate.

En plus des recherches standard et de la recherche par expression rationnelles, vous avez la possibilité d'effectuer des recherches « structurelles ». Cette fonctionnalité complète les deux autres. Elle permet d'effectuer les recherches à l'aide de template prédéfinis ou vos propres template.

Exemple :

Image non disponible

Vous pouvez accèder à cette fonctionnalité dans Edit | Find | Search  Structural ly , ou  Edit | Find | Replace  Structural ly .
Vous pouvez aussi utiliser le raccourcis :  Ctrl+Shift+S  ou  Ctrl+Shift+M  

Vous pouvez aussi effectuer un « remplacement structurel ».

Image non disponible

Dans l'exemple ci-dessus, nous avons utilisé des templates de variables. Elles se définissent de la manière suivante :

 
Sélectionnez
$MaReference$

Ce template de variable doit être entre « $ ».  « MaReference » est un nom de variable que vous définissez. Il doit respecter les règles de nommage standard java.

Pour plus d'informations, vous pouvez consulter le lien suivant :
http://www.jetbrains.com/idea/documentation/ssr.html

III-C. Refactoring

Dans cette section, nous allons aborder quelques fonctionnalités de refactoring. Il en existe beaucoup plus et nous ne pourrons pas les traiter ici.

Vous pouvez consulter l'article Dzone sur le refactoring :
http://jetbrains.dzone.com/articles/top-20-refactoring-features
Vous pouvez consulter aussi le refactoring sur le site de JetBrains :
http://www.jetbrains.com/idea/features/refactoring.html

III-C-1. Refactoring multi langages multi framework

Le refactoring sous IntelliJ ne se limite pas seulement au langage Java. Le refactoring peut se faire dans pleins de langages et de frameworks et aussi en fonction du contexte.

Prenons un exemple :

Vous souhaitez renommer une classe dans une requête JPA. IntelliJ va automatiquement reconnaître JPA et vous proposer de renommer la classe correspondante :

Image non disponible

III-C-2. Migration de type

Cette fonctionnalité va vous permettre de changer le type d'un champ et IntelliJ va effectuer le refactoring adéquat :

Image non disponible

III-C-3. Inversion de booléen

Avec IntelliJ, vous pouvez changer le nom d'un booléen et sa valeur.

Par exemple, si vous définissez :

 
Sélectionnez
                boolean available = true;
                String name = customer.getName();
                String result = "";
                if (name == null) {
                    result = "FAILED";
                    available = false;
                }
                if (available && name.startsWith("idea")) {
                    result = "OK";    
                } else if (!available && (name.startsWith("br")) ) {
                    result = "KO";
                } else {
                    if ((available == false) && (result.equals("FAILED"))) {
                        result = "TEST";    
                    }
                    available = false;
                }

Le refactoring d'inversion de booléen aura le résultat suivant :

 
Sélectionnez
                boolean available = false;
                String name = customer.getName();
                String result = "";
                if (name == null) {
                    result = "FAILED";
                    available = true;
                }
                if (!available && name.startsWith("idea")) {
                    result = "OK";
                } else if (available && (name.startsWith("br")) ) {
                    result = "KO";
                } else {
                    if ((!available == false) && (result.equals("FAILED"))) {
                        result = "TEST";
                    }
                    available = true;
                }

IV. Utilisation d'IntelliJ

Dans cette partie, nous allons au travers d'exemple montrer les points essentiels pour une utilisation quotidienne d'IntelliJ.

IV-A. Gestionnaire de version

Dans cette section, nous allons aborder l'utilisation d'un gestionnaire de version sous IntelliJ. Nous ferons essentiellement des remarques sur l'utilisation de Subversion et quelques remarques sur l'utilisation de Git.

IV-A-1. Remarques générales

  • Première remarque : Il n'y a rien à télécharger, rien à installer et pas de configuration à faire.
  • Que l'on utilise Git, Subversion ou un autre gestionnaire de version, le mode d'utilisation est le même. Les commandes du gestionnaire de version pour faire par exemple des commits ou des updates sont accessibles avec un clic droit. Les changements locaux ou distants sont accessibles dans la vue Change. Les repositories dans la vue repositories.
  • Si le projet utilise Subversion, alors le menu Subversion sera accessible automatiquement sans qu'il y ait besoin d'effectuer des configurations. Idem, pour un projet Git.
  • L'authentification  :
    Lorsque l'on commence à utiliser le gestionnaire de version, on cherche où mettre les paramètres d'authentification et on le trouve pas l'écran correspondant ! En fait, l'authentification se fait au premier commit. Ensuite, les données d'authentification sont conservés sur le disque. Idea vous redemande un login et mot de passe seulement s'il ne trouve pas.

IV-A-2. La vue SVN Repositories

Cette vue affiche la liste des repositories SVN. Voici quelques remarques concernant cette vue :

  • Par défaut la vue est vide.

Étant donné que j'avais déjà un projet Subversion de configurer, je m'attendais à voir le repository de mon projet. Ce n'est pas le cas. Il faut obligatoirement l'ajouter.

  • L'ajout de repositoy est très facile. En effet, il suffit juste de saisir l'url.
  • Dans cette vue, il est possible de faire un checkout.

La vue SVN Repositories nous permet d'effectuer un checkout dans l'arborescence. On peut ainsi récupérer des tags, le trunk ou même un répertoire très facilement.

Par contre, à la fin de la procédure du checkout, IntelliJ nous demande si on veut créer un nouveau projet à partir des sources que l'on vient de récupérer. Si on clic oui, il va nous proposer de créer un nouveau projet. Il aurait été bien de mettre la possibilité d'ajouter un module.

IV-A-3. La vue change

Cette vue permet de visualiser les modifications de fichiers dans différents onglets.

Il y a un onglet pour :

  • les modifications locales.
  • toutes les modifications effectuées dans le repository.
  • les update à venir
  • les informations locales du repository.
  • Les commits dans les branches locales et sur les repositories distant. (uniquement pour Git et mercurial)

L'avantage de cette vue est de regrouper tous les changements au même endroit.

De plus, cette vue offre la possibilité de faire un shelf. Ce mécanisme existe en natif sous Git sous le nom de « stash ». Par contre, il n'existe pas sous Subversion et à donc été implémenter par intelliJ.

Un « shelf » va vous permettre de conserver vos modifications dans un endroit temporaire

Parfois, nous avons besoin de mettre en suspens des modifications pour faire un travail plus urgent. On stocke donc les modifications en cours dans un « shelf » puis plus tard, on pourra ré-appliquer les modifications et reprendre à l'endroit où on en était.

IV-A-4. Autres remarques

  • Il est possible de comparer deux versions d'un même fichier ou même de comparer une branche avec une autre. Par contre, je n'ai pas trouvé comment comparer deux révisions d'un même projet pour voir par exemple l'ensemble des fichiers modifiers.
  • J'ai trouvé l'utilisation de subversion un peu déroutante au début.

Cela est dû au fait que la gestion du versionning se fait à plusieurs endroits : Il y a un endroit pour le repository (SVN repositories) , 1 pour les changements (Changes), 1 autre qui affiche les différentes versions d'un fichier (Version Control) et dans certains cas ce n'est pas très intuitif.

Prenons un exemple :

Je modifie un fichier et je veux faire un shelve dessus. Je m'attendrai à avoir la fonctionnalité de shelf en faisant clic droit -> subversion. Ce n'est pas le cas, il faut aller dans Change et faire shelves.

IV-B. Maven

Dans cette section, nous allons présenter l'utilisation de Maven sous IntelliJ.

IV-B-1. Boîte à outil Maven

Les points remarquables de cette vue sont :

- Il est possible de choisir un profil Maven.

- Il est possible d'ignorer les tests unitaires en cliquant sur l'icône suivant :Image non disponible

- La vue avec arborescence est très pratique. Elle permet de voir rapidement les profiles, target et plugins qui sont disponibles.

- Il est possible de travailler en mode offline en cliquant sur l'icône ci-dessous :.Image non disponible

Il est recommandé de définir un raccourci pour afficher la boîte à outil Maven.Pour cela, il faut aller dans File-> settings->keymap

IV-B-2. Import d'un projet Maven

Pour importer un projet Maven, il suffit de cliquer sur Image non disponible et de sélectionner un fichier pom.xml. Vous verrez ainsi apparaître un nouveau module dans l'arborescence des projets et dans la boîte à outil.

Image non disponible

IV-B-3. Target personnalisée

  • Il est possible de créer des targets personnalisées par contre, c'est un peu dommage mais Il n'existe pas de boutons pour créer des targets personnalisées. Si on veut créer une target personnalisé, il faut sélectionner un goal ou une étape du cycle de vie dans la boîte à outil Maven et faire un clic droit dessus. Ensuite il faut sélectionner create '…'.
  • De plus, si on crée une target personnalisé, elle n'apparaît pas dans l'arborescence. Elle apparaît dans la toolbar (cf II.A.2).

IV-B-4. pom.xml

  • IntelliJ détecte les modifications effectuées dans le fichier pom.xml. Si une nouvelle dépendance est ajoutée alors IntelliJ l'a télécharge automatiquement dans son repository local et l'ajoute dans son CLASSPATH.
  • La complétion est possible dans le pom.xml

    Il est possible de faire de la complétion dans le fichier pom.xml. La complétion se fait sur les balises mais aussi sur les variables définies dans le pom.xml.

    Si vous saisissez le caractère '<', l'éditeur va alors vous proposer l'ensemble des balises disponible.

  • Il est possible de voir la structure d'un pom.xml :
Image non disponible

On regrette cependant qu'il n'ait pas un nom pour les dependency et les repository.

  • Voir les variables du pom.xml

    Si on prend le cas suivant :

    On pourra afficher le contenu de ${crsh.snapshots.repo.url} en faisant CTRL + survol de la souris sur la variable.

     
    Sélectionnez
        <snapshotRepository>
          <id>repository.exoplatform.org</id>
          <url>${crsh.snapshots.repo.url}</url>
        </snapshotRepository>
    

    Il est possible de voir les valeurs des variables contenues dans un pom.xml :

  • Ajout de dépendances

L'ajout de dépendance à l'aide de l'éditeur n'est pas très intuitif au premier abord. En effet, je n'ai pas trouvé de boutons pour ajouter une dépendance.

En fait, il suffit de faire ALT + INSER et une fenêtre de recherche s'affiche avec la liste de toutes les dépendances :

Image non disponible

Il faut souligner le fait que la recherche est très rapide.

IV-C. Partie WEB

Dans cette partie, étant donné le nombre important de fonctionnalités, nous allons aborder seulement celles qui semblent les plus intéressantes.

IV-C-1. HTML/XHTML

  • Complétion

La complétion se fait sur :

- les tags

IntelliJ fait la complétion sur tous les éléments HTML. Il vous suffit de saisir '<' et de saisir les premières lettres. Par exemple, si vous saisissez :<h, vous aurez dans la liste proposée h1, h2, h3 …

- la fermeture de tags

- les attributs

Si vous saisissez :

 
Sélectionnez
<input type="

Et que vous faites CTRL+SPACE, vous aurez la liste des attributs possibles : button, checkbox, date …

- le style

- les références de fichier

Image non disponible

J'ai rencontré un cas où la complétion ne fonctionnait pas bien. Je saisissais <inpu et dans la liste proposée, j'avais seulement un composant Spring en complétion : <form:input
alors que je m'attendais à avoir l'élément HTML : input.

  • Zen coding

Intellij permet d'utiliser la complétion « zen coding ». Cette complétion va vous permettre de générer des balises avec leur contenu.

Exemple :

Si vous saisissez :

 
Sélectionnez
div.feature>p[TAB]    

Vous obtiendrez :

 
Sélectionnez
            <div class="feature">
                <p></p>
            </div>

Plus d'informations sur le zen coding à l'url suivante :
https://code.google.com/p/zen-coding/

  • Code folding

Le code folding vous permet de masquer les parties non utilisées. Ainsi vous allez pouvoir réduire un div à une seule ligne.

IV-C-2. CSS

  • Complétion

La complétion se fait sur les mots clés, les valeurs, les propriétés, classes, html ID.

Exemple.

Si vous saisissez :

 
Sélectionnez
body {    
    mar

Et que vous faites CTRL + ESPACE, l'éditeur va vous proposer margin, margin-bottom …

si vous choisissez margin et que vous refaites CTRL + SPACE, vous aurez la liste suivante : auto, inherit, length, percentage.

  • Pré-visualisation

Vous pouvez voir le contenu d'une classe css en prévisualisation à l'aide du raccourci CTRL + SHIT + I

Image non disponible

Ce raccourcis fonctionne aussi dans le code Java.

Cette fonctionnalité fonctionne aussi dans la liste proposée en complétion.

IV-D. Projet Spring

Dans cette partie, nous allons utiliser un projet existant pour mettre en évidence quelques fonctionnalités intéressantes de Spring.

IV-D-1. Projet exemple

Dans cette partie, nous allons récupérer un projet Spring existant :

 
Sélectionnez
Git clone https://github.com/crashub/spring-ehcache-demo.git

Ce projet a été utilisé pour illuster l'utilisation de CraSH : un shell qui étend la plateforme Java. Pour plus d'information, reportez-vous sur l'article suivant : ici

Ensuite, dans IntelliJ, nous ouvrons un projet existant en faisant : File → Open project.

Le projet s'ouvre et IntelliJ télécharge les dépendances Maven. Il affiche également le message suivant dans la barre de status :« Frameworks detected : Spring framework is detected in the project Configure »

En cliquant sur Configure, la fenêtre suivante s'affiche :

Image non disponible

IV-D-2. Navigation dans un projet Spring

Si on ouvre le fichier MainController dans le package fr.dr.sandbox.controller, on constate deux icônes :

Image non disponible

Ces icônes permettent de naviguer plus facilement. Ainsi, en cliquant sur l'icône devant « public class MainController », on ira directement dans le fichier de configuration correspondant.

IV-D-3. Création de bean rapide

La création de bean est très rapide. Une fois dans le fichier XML de Spring, il vous suffit de faire ALT + INSER et de choisir Spring beans. La structure XML de bean est alors crée :

EmptyBean
Sélectionnez
    <bean id="" class="">

        

    </bean>

Le curseur est positionné automatiquement entre les guillemets dans l'attribut class. Ceci vous permet de saisir le chemin de la classe. La complétion vous permet de trouver rapidement votre bean.

Si votre bean, n'existe pas encore, il vous suffira une fois l'édition de class et id terminés, de faire ALT + INSER pour créer automatiquement la classe correspondante.

IV-D-4. Changer la version de Spring

Pour changer la version de Spring, il suffit de cliquer sur l'icône « Project Structure »:Image non disponible

Il faut ensuite sélectionner la dépendance Maven Spring ayant une icône de feuille :

Image non disponible

Il suffit ensuite de cliquer sur change version :

Image non disponible

Dans cette section, nous avons abordé seulement quelques fonctionnalités d'un projet Spring.

Si vous souhaitez avoir une vue d'ensemble des fonctionnalités d'IntelliJ avec Spring, vous pouvez consulter les vidéos sur le site
http://www.jetbrains.com/idea/features/spring_framework-tutorials.jsp

IV-E. Utilisateur Eclipse : pourquoi changer ?

IV-E-1. Elements de vocabulaire

Voici quelques éléments de vocabulaire, qui vont vous permettre de mieux comprendre les fonctionnalités d'IntelliJ.

Eclipse IntelliJ
Workspace Project
Nature Facet
Refreshing synchronizing
Code templates Live Templates
Windows frame
Perspective ?

IV-E-2. L'autocomplétion/refactoring

Eclipse permet de faire de l'autocomplétion. IntelliJ va beaucoup plus loin. En effet, on peut utiliser la complétion absolument partout ! On peut faire de la complétion dans les fichiers Java, HTML, CSS, JavaScript dans les pom.xml …

Il en va de même pour le refactoring !

IV-E-3. Très complet de base

Pour plus d'informations, reportez-vous à la section plugins.

IV-E-4. Stabilit&#233; et performance de l'IDE

Il faut noter qu'IntelliJ est très stable. Je n'ai pas constaté de bug.

IV-E-5. Raccourcis

Une des difficultés pour migrer vers un nouvel IDE, c'est l'apprentissage de nouveau raccourcis. IntelliJ fournit une keymap pour Eclipse. Ainsi, on peut conserver ses habitudes et migrer en douceur vers IntelliJ.

IntelliJ fournit aussi des keymaps pour Netbeans, Jbuilder, Visual Studio et Emacs.

IntelliJ fournit des raccourcis pour plusieurs environnements : KDE, GNOME, Mac …

IV-E-6. Eclipse vs IntelliJ community

Eclipse est gratuit et IntelliJ en version community.

Un premier élément de réponse est le type de projet que vous souhaitez faire. En effet, avec Eclipse, vous pourrez faire tous les projets alors qu'avec IntelliJ vous serez limité au projet standard.

Plus d'informations sur :
http://www.jetbrains.com/idea/features/editions_comparison_matrix.html

Ensuite, si vous choisissez un projet standard, j'espère que cet article vous aura donné quelques éléments de réponse …

IV-E-7. Mise à jour

Jetbrains améliore constamment IntelliJ en proposant très régulièrement des mises à jour qui permette d'ajouter des nouvelles fonctionnalités et de corriger des nouveaux bugs. (environ toutes les semaines) à l'aide d'une boîte de dialogue nous invitant Cela permet d'avoir un IDE constamment à jour alors qu'avec Eclipse, on a tendance à mettre à jour son IDE seulement lors d'un passage à une version majeure.

V. Première impression

Cette section présente les points forts et points faibles sur une première utilisation d'Intellij.

V-A. Points faibles

V-A-1. Erreur sur un fichier

On ne voit pas toujours les erreurs sur un fichier. Pour voir les erreurs sur un fichier, on est obligé d'ouvrir le fichier ou d'effectuer une compilation. Ce n'est pas le cas d'Eclipse qui, une fois le fichier sauvegardé, va surligner le fichier en rouge.

V-A-2. Recherche structurelle

La fonctionnalité Recherche Structurelle n'est pas présente dans la version Community. Les principales différences entre la version Community et la version Ultimate concernent le support de framework donc c'est un peu dommage de ne pas retrouver une fonctionnalité de recherche dans la version Community

V-A-3. Liste d'onglet

Lorsque l'on édite un nouveau fichier dans IntelliJ, la liste d'onglet augmente dans l'IDE. Cela pose problème si l'on a un grand nombre de fichier, car cela prend beaucoup de places.

V-A-4. Le prix

Pour acquérir IntelliJ, il faudra débourser :179€ HT pour une licence personnelle et 89€ HT pour une licence étudiante.

Pour plus d'information sur le prix, vous pouvez aller voir
http://www.jetbrains.com/idea/buy/index.jsp

  • Si vous utilisez OpenJDK, vous risquez d'avoir des problèmes de performance :
 
Sélectionnez
OpenJDK Runtime Environment (IcedTea6 1.12.3) (6b27-1.12.3-0ubuntu1~12.10.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
WARNING: You are launching the IDE using OpenJDK Java runtime.

 ITS KNOWN TO HAVE PERFORMANCE AND GRAPHICS ISSUES!
 SWITCH TO THE ORACLE(SUN) JDK BEFORE REPORTING PROBLEMS!

NOTE: If you have both Oracle (Sun) JDK and OpenJDK installed
     please validate either IDEA_JDK, JDK_HOME, or JAVA_HOME environment variable points to valid Oracle (Sun) JDK installation.
     See http://ow.ly/6TuKQ for more info on switching default JDK.

Pour ma part, cela est arrivé une fois. Je n'arrivais plus à voir l'arborescence de mon projet. En tout cas, j'étais prévenu ;-)

V-B. Points forts

V-B-1. Réactivité

L'ouverture de popup, la navigation entre les différents éléments est très fluide. Il n'y a pas de temps de latence.

V-B-2. Comfort d'utilisation

Une des premières choses que l'on remarque lorsque l'on utilise IntelliJ, c'est le confort d'utilisation. Une fois que l'on a pris un peu en main l'ide, on navigue très rapidement entre les différents éléments. Voici quelques raccourcis indispensables à connaître pour naviguer entre les différents éléments :

  • CTRL - NUM : pour ouvrir différents éléments (project, structure …)
  • ALT-RIGHT - ALT-LEFT : permet de naviguer entre les différents fichiers

V-B-3. Beaucoup de plugins par défaut

Lors de l'installation, le setup vous demande quels sont les plugins que vous souhaitez utiliser. Vous pouvez choisir ceux que vous utiliserez plus. Ainsi, vous n'avez pas besoin d'effectuer des configurations supplémentaires et vous pourrez directement commencer votre projet. De manière générale, on peut dire qu'avec IntelliJ, on ne passe du temps à installer des plugins.

V-B-4. Productivity guide

Une des grandes forces d'IntelliJ, c'est les raccourcis. Le problème des raccourcis, c'est qu'il faut les apprendre !

IntelliJ propose un moyen simple en natif pour apprendre les raccourcis : le productivity guide . Ce guide affiche des statistiques sur l'utilisation des fonctionnalités et des raccourcis d'IntelliJ :

Image non disponible

précédentsommairesuivant

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Rieu Damien. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.