Ce guide vous accompagne sur tout le chemin, de « je n'ai rien » à « l'analyseur tourne sur mon code ». Il est écrit pour les personnes nouvelles en Delphi.
Vous obtiendrez à la fin :
- l'application Windows autonome (
StaticCodeAnalyser.d12.exe) - le plugin IDE (chargé dans Delphi 12 à chaque ouverture)
Compiler est facultatif. Les releases GitHub livrent des zips EXE prêts à l'emploi (Win32/Win64), un EXE d'installation pour le plugin IDE et un paquet GetIt — voir le démarrage rapide du README. Ce document s'adresse à ceux qui veulent compiler depuis les sources.
🇬🇧 English version · 🇩🇪 Deutsche Fassung
- Windows 10 ou 11 (64 bits).
- Environ 25 Go de disque libre (RAD Studio est volumineux).
- Une connexion Internet (pour le téléchargement et pour git).
- Un compte Embarcadero (gratuit).
- Environ 45 minutes au total. L'essentiel part dans l'installateur de RAD Studio.
Il vous faut Delphi 12 Athens (aussi appelé RAD Studio 12) — l'une des versions 12.0–12.3. Le plugin tourne dans l'IDE 32 bits (l'IDE 64 bits de 12.3 n'est pas encore pris en charge) ; Delphi 13 est prévu mais pas encore pris en charge, Delphi 11 et antérieurs ne sont pas pris en charge. La Community Edition gratuite suffit.
- Allez sur https://www.embarcadero.com/products/delphi/starter.
- Cliquez sur « Download Free Trial » ou « Community Edition ».
- Connectez-vous avec votre compte Embarcadero (créez-en un si vous n'en avez pas).
- Lancez l'installateur (
RADStudio_Athens_setup.exe). - Choisissez :
- Personality : Delphi (vous n'avez pas besoin de C++Builder).
- Platforms : Windows 32-bit ET Windows 64-bit (les deux !).
- Languages : l'anglais convient.
- Extras (facultatif) : GetIt-Package-Manager — laissez le défaut.
- Patientez. Le téléchargement fait ~6 Go ; l'installation ajoute encore ~12 Go.
- Après l'installation, démarrez RAD Studio. Acceptez l'EULA au premier lancement.
Vous devriez maintenant voir l'IDE Delphi avec un onglet « Welcome ». Fermez les projets d'exemple qu'il ouvre.
Il vous faut git pour Windows : https://git-scm.com/download/win.
Ouvrez Command Prompt ou PowerShell dans le dossier où vous gardez votre code, puis exécutez :
cd D:\projects
git clone https://github.com/nrodear/StaticCodeAnalyser.git
cd StaticCodeAnalyserVous pouvez choisir n'importe quel chemin. Dans ce guide, nous
supposons D:\projects\StaticCodeAnalyser.
Le projet est livré comme groupe de projets contenant 4 sous-projets (moteur, UI partagée, application autonome, plugin IDE).
- Dans Delphi, cliquez sur le menu File → Open Project.
- Naviguez vers
D:\projects\StaticCodeAnalyser. - En bas du dialogue, passez « Files of type » sur
« Delphi project group (
*.groupproj) ». - Choisissez
StaticCodeAnalyser.d12.groupprojet cliquez sur Open.
À droite, vous voyez maintenant la fenêtre Project Manager avec ces sous-projets :
SCA.Engine— le moteur d'analyse.SCA.SharedUI— composants UI communs à l'autonome et au plugin.StaticCodeAnalyser.d12— l'EXE autonome.StaticCodeAnalyser.IDE.d12— le plugin IDE (un paquet BPL).
Delphi affiche le sous-projet actif en gras vert. Vous changerez de projet actif au fil des étapes ci-dessous.
L'autonome est un simple .exe. Vous le lancez depuis la ligne de
commande ou par double-clic.
64 bits est la valeur par défaut et notre recommandation.
Dans le Project Manager :
- Dépliez
StaticCodeAnalyser.d12(cliquez sur la petite flèche). - Dépliez Target Platforms.
- Clic droit sur
Windows 64-bit (Win64)→ cliquez sur Activate. - Clic droit sur
Configuration→ Release → cliquez sur Activate.
Si vous préférez l'EXE 32 bits, prenez Windows 32-bit (Win32).
Astuce : si vous changez d'avis plus tard, faites simplement un clic droit sur l'autre plateforme et cliquez de nouveau sur Activate — vous pouvez compiler les deux versions à tout moment.
- Dans le Project Manager, clic droit sur
StaticCodeAnalyser.d12(le nom du projet lui-même, pas Target Platforms). - Cliquez sur Build (ou Compile si Build est grisé).
- Patientez ~30 secondes. Surveillez la fenêtre Messages en bas.
Quand elle se termine par « Success », votre EXE se trouve ici :
D:\projects\StaticCodeAnalyser\Output\Win64 Release\StaticCodeAnalyser.d12.exe
(Pour Win32 : Output\Win32 Release\…. Pour les builds Debug :
…\Win64 Debug\….)
Le compilateur fixe une pile de 1 Mo. Des fichiers Pascal profonds peuvent atteindre cette limite et planter. Ouvrez PowerShell dans le dossier du projet et exécutez :
tools\patch-stack-size.ps1 "Output\Win64 Release\StaticCodeAnalyser.d12.exe"Le script affiche Patched ... SizeOfStackReserve: 1 MB -> 32 MB.
Vous devez le relancer après chaque nouveau build.
Le plugin est un .bpl (Borland Package Library) que Delphi charge au
démarrage.
Raccourci : si vous voulez seulement utiliser le plugin, cette section est inutile — les releases livrent un EXE d'installation (
StaticCodeAnalyserSetup-<Version>.exe) et un paquet GetIt local ; les deux installent le paquet monolithique de release (StaticCodeAnalyser.Plugin.d12.dpk, un seul.bpl, pas de paquets moteur séparés). Les étapes ci-dessous compilent le jeu de développement de trois paquets depuis les sources.
Le plugin tourne dans l'IDE 32 bits (l'IDE 64 bits de 12.3 n'est pas encore pris en charge). Le plugin doit donc être en 32 bits.
- Dans le Project Manager, dépliez
StaticCodeAnalyser.IDE.d12. - Dépliez Target Platforms.
- Clic droit sur
Windows 32-bit (Win32)→ Activate. - Passez la configuration active sur Release (clic droit sur
Configuration→ Release → Activate). - Clic droit sur
SCA.Engine(dans le Project Manager) → Build. Le plugin a besoin du paquet moteur ; compilez-le d'abord. - Clic droit sur
SCA.SharedUI→ Build. - Clic droit sur
StaticCodeAnalyser.IDE.d12→ Build.
⚠️ Chaque projet compile dans SA PROPRE plateforme active. Les étapes 3–4 ne commutent que le projet cliqué. SiSCA.Engineest encore actif en Win64 pendant que le plugin compile en Win32, le plugin échoue avecF2613 Unit '…' nicht gefunden— il se lie à uneSCA.Engine.dcpWin32 périmée (qui vit hors du dépôt, dans le dossierDcpdu Studio). Avant l'étape 5, vérifiez que les trois paquets —SCA.Engine,SCA.SharedUI,StaticCodeAnalyser.IDE.d12— affichent Windows 32-bit en gras sous leurs Target Platforms. Depuis la v0.9.16, les valeurs par défaut versionnées des trois sont alignées sur Win32, mais l'IDE mémorise votre dernière sélection par projet.
⚠️ Ne jamais faire « Install » surSCA.EngineniSCA.SharedUI. Ce sont des paquets d'exécution ; depuis le 2026-08-23 leur.dpkporte{$RUNONLY}. Sans cette directive, l'IDE considère un paquet comme paquet d'exécution ET de conception et l'installe en lui-même après chaque compilation. Si le monolithe posé par le setup est enregistré en plus, Delphi 13 refuse le plugin avec « contient l'unité 'uLocalization', qui est également contenue dans le paquet 'SCA.Engine' ». Un SEUL paquet s'installe :StaticCodeAnalyser.IDE.d12de ce jeu — ou le monolithe du setup, jamais les deux à la fois.
Vous avez maintenant trois fichiers .bpl dans
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\ :
SCA.Engine.bplSCA.SharedUI.bplStaticCodeAnalyser.IDE.d12.bpl
- Cliquez sur le menu Tools → Options.
- À gauche, cliquez sur IDE → Packages → Design Packages.
- Cliquez sur Add….
- Naviguez vers
C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl\, choisissezStaticCodeAnalyser.IDE.d12.bpl, cliquez sur Open. - Assurez-vous que la case à côté est cochée.
- Cliquez sur OK.
- Fermez et redémarrez Delphi.
Après le redémarrage, l'IDE affiche une nouvelle fenêtre ancrable : View → Static Code Analysis.
Si l'entrée de menu manque, le plugin n'a pas pu se charger. Regardez dans View → Window List… ou lisez attentivement les erreurs de l'écran de démarrage.
L'autonome est le moyen le plus simple de vérifier que tout fonctionne.
Pour un test rapide, vous pouvez analyser le projet lui-même.
Double-cliquez sur l'EXE que vous avez compilé, OU depuis la ligne de commande :
cd D:\projects\StaticCodeAnalyser
"Output\Win64 Release\StaticCodeAnalyser.d12.exe"Une fenêtre s'ouvre avec des cartes de statistiques (Erreurs / Avertissements / Conseils / …) et une grille vide.
- Dans le champ Path en haut, saisissez ou collez votre dossier
(p. ex.
D:\projects\StaticCodeAnalyser\SCA.Engine\sources). - Cliquez sur le bouton Analyse.
- Patientez — petits projets : 1 à 5 secondes. Gros projets : jusqu'à une minute.
La grille se remplit de résultats. Chaque ligne montre : fichier, méthode, ligne, sévérité, règle, message. Un double-clic sur une ligne ouvre le fichier à la bonne ligne (Notepad ou votre visionneuse Pascal par défaut).
- Le champ Filter en haut accepte des sous-chaînes du fichier ou de la règle.
- Cliquez sur un en-tête de colonne pour trier.
- Cliquez sur une carte de statistiques (Erreurs / Avertissements / Conseils) pour ne garder que cette sévérité.
Utilisez les boutons Export (en haut à droite) pour enregistrer en HTML, JSON, SARIF (pour SonarQube), ou copiez dans le presse-papiers pour Jira/Markdown.
Si vous avez terminé la section 5, le plugin est déjà chargé.
Menu View → Static Code Analysis.
Une fenêtre ancrable apparaît (faites glisser la barre de titre pour l'ancrer à côté du Project Manager ou comme onglet en bas).
- Ouvrez n'importe quel fichier
.pasdans l'éditeur. - Dans la fenêtre Static Code Analysis, cliquez sur le bouton File.
- Le fichier courant est analysé. Les résultats s'affichent dans la grille.
- Ouvrez votre projet (
.dproj) dans Delphi. - Dans la fenêtre Static Code Analysis, cliquez sur le bouton Analyse.
- Le projet entier est analysé. Cela peut prendre de quelques secondes à une minute.
Cliquez sur une ligne de la grille : l'éditeur saute vers ce fichier et cette ligne et surligne le code fautif avec un marqueur coloré dans la gouttière.
Clic droit sur un résultat → Suppress avec // noinspection. Le
plugin écrit au-dessus de la ligne un commentaire qui masque
exactement cette règle à cet endroit. Le résultat disparaît à la
prochaine analyse.
Si vous survolez une ligne de résultat, une infobulle montre un exemple de code Avant / Après : à quoi ressemble le problème, et à quoi ressemble la correction.
| Symptôme | Cause la plus probable |
|---|---|
| « Build failed: unresolved external » | Vous avez compilé le plugin avant le moteur. Compilez d'abord SCA.Engine, puis SCA.SharedUI, puis le plugin. |
| L'entrée de menu du plugin manque après le redémarrage | Mauvaise plateforme (vous avez compilé Win64 au lieu de Win32) ou mauvais chemin dans Tools → Options → Packages. |
| L'autonome plante après quelques secondes sur un gros projet | Patch de taille de pile non appliqué. Relancez tools\patch-stack-size.ps1. |
| L'EXE se plaint « file not found » au lancement | Vous avez déplacé l'EXE hors de son dossier Output\…. Remettez-le en place, ou copiez les fichiers .dcu/.bpl avec lui. |
| « Cannot find SCA.Engine.bpl » au chargement du plugin | Le plugin voit SCA.Engine.bpl via le chemin de recherche Delphi. Compilez SCA.Engine pour la même plateforme (Win32) et la même configuration (Release). |
| Identificateur non déclaré alors qu'il figure bien dans les sources | Un paquet prend cette unité dans le DCP d'un autre paquet, pas dans les sources. Si ce DCP est plus ancien que les sources, vous compilez contre l'ancien état — et le compilateur désigne l'appel, pas le fichier périmé. Lancez python tools\stale_artifacts_check.py, puis recompilez dans l'ordre SCA.Engine -> SCA.SharedUI -> plugin. |
- Configurer l'analyseur : ouvrez
analyser.inidans%APPDATA%\StaticCodeAnalyser\. Vous pouvez réglerProfile=(quelles règles s'exécutent),MinSeverity=,MinConfidence=, etc. Le fichier est commenté. - Se connecter à SonarQube : voir sonarHowto_fr.md.
- Lancer depuis la ligne de commande / la CI : voir la sortie
--helpde l'EXE autonome. Options utiles :--profile,--report-sarif,--quiet,--time-detectors. - Essayer l'interface en allemand : dans la fenêtre de l'analyseur, passez la langue sur Deutsch dans la barre d'outils.
- Issues GitHub : https://github.com/nrodear/StaticCodeAnalyser/issues
- Docs Embarcadero (questions Delphi générales) : https://docwiki.embarcadero.com/RADStudio/en/Main_Page