Netbeans

Fin de vie

Je n'utilise plus Netbeans, mais IntelliJ: cette page ne sera plus mise à jour.

Auto-complétion Netbeans, PROCEDURE et DELIMITER

Un bogue NetBeans bloque l'auto-complétion après les IF|WHILE|… dans les PROCEDURE si un DELIMITER est présent.
La seule solution est de supprimer le DELIMITER et de lancer le script via un terminal externe (il n'est plus exécutable directement dans l'IDE).

DROP PROCEDURE IF EXISTS `assert`$$ CREATE PROCEDURE `assert`(IN `asserting` TINYINT(1) UNSIGNED, IN `code` INT UNSIGNED) LANGUAGE SQL DETERMINISTIC CONTAINS SQL SQL SECURITY INVOKER BEGIN IF NOT(`asserting`) THEN CALL throw('UserException', `code`, '{}'); END IF; END$$ $file = $argv[1]; $mysql = "L:\\InstalledOn7\\wamp64\\bin\\mysql\\mysql5.7.14\\bin\\mysql.exe"; $command = "$mysql --port=3306 --user=\"…\" --password=\"…\" --database=isometry --delimiter=$$ < \"$file\""; Platform::exec($command); exit(0);php -f "E:\Projets\Web\misc\common\sources\shell\run-sql-file.php" "$CURRENT_FILE$"
Le code PHP exécuté, et sa ligne de commande pour Run my script

Lier XDebug à NetBeans

Si vous utilisez WAMP, XDebug est déjà fournit (sinon, vous devrez le télécharger et enregistrer sa DLL dans le répertoire des extensions PHP). Vous n'avez alors plus qu'à configurer le plugin PHP via le fichier php.ini, directement accessible depuis l'icône de WAMP.

[xdebug] zend_extension_ts="C:/xamp/plugins/php_xdebug.dll" xdebug.remote_enable=1 xdebug.auto_start=1 xdebug.remote_host=127.0.0.1 xdebug.remote_port=9000 xdebug.idekey=netbeans-xdebug xdebug.auto_trace=0 xdebug.trace_format=0 xdebug.show_mem_delta=1 xdebug.trace_output_dir="C:/xamp/log/xdebug" xdebug.trace_output_name=%p.%t.trace xdebug.profiler_output_dir="C:/wamp/log/xdebug" xdebug.profiler_output_name=%p.%t.cachegrind xdebug.coverage_enable=1 xdebug.collect_vars=1 xdebug.collect_params=4 xdebug.collect_return=1 xdebug.show_local_vars=1
La configuration XDebug

Ce tutoriel vous aidera si vous coincez sur une étape.

Ouvrir la stack trace de XDebug avec NetBeans

Lors d'une erreur, XDebug vous fournit un rapport détaillé donnant la pile d'exécution complète ayant amené à l'erreur. Mais il est fastidieux de devoir ouvrir chaque des fichiers de cette pile un à un, pour aller sur la ligne indiqué par Xdebug. Pour éviter cela, ajoutez le paramètre xdebug.file_link_format="netbeans://%f:%l" dans votre php.ini, puis ajoutez le protocole netbeans:// à Windows et faites-le pointer sur un .bat qui ouvrira le fichier PHP dans NetBeans.

xdebug.file_link_format="netbeans://%f:%l" Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT etbeans] @="URL:Netbeans Protocol" "URL Protocol"="" [HKEY_CLASSES_ROOT etbeans\shell] @="open" [HKEY_CLASSES_ROOT etbeans\shell\open] @="Netbeans IDE" [HKEY_CLASSES_ROOT etbeans\shell\open\command] @="E:\Projets\Web\misc\common\sources\netbeans\protocol\netbeans-protocol.bat \"%1\"" @echo off Setlocal EnableDelayedExpansion SET ARG=%1 REM Remove the quotes SET UNQUOTED=!ARG:"=! REM Remove the protocol SET URI=%UNQUOTED:~11% REM remove trailing slash at end if "%URI:~-1%" == "/" SET URI=%URI:~,-1% REM remove protocol "netbeans://" REM SET PROTOCOL_LESS=%uri:~11% SET FORWARD_SLASHED=!URI:%%5C=/! "C:/Program Files/NetBeans 8.1/bin/netbeans64.exe" --nosplash --console suppress --open "%FORWARD_SLASHED%"
Rajoutez la 1ere ligne à votre PHP.ini
Rajoutez les entrées registre du second code à Windows
Sauvez le troisième code dans un fichier .bat correspondant
Rapport d'erreur avec des liens Le fichier PHP dans NetBeans
Maintenant, en cliquant sur un lien du rapport XDebug, le fichier PHP sera ouvert dans NetBeans, à la ligne indiquée par XDebug.

Le même principe peut être appliqué à IntelliJ ou à Eclipse, voire même à Notepad++.

Autocompletion XSL, SVG, HTML (etc) dans NetBeans

Pour obtenir l'autocomplétion dans n'importe quel langage XML (SVG, HTML, XSL, MathML, ...), il vous suffit de rajouter la DTD ou la XSD du langage à la liste des définitions XML de Netbeans, en associant le namespace XML au fichier XSD/DTD (local ou distant). L'auto-complétion XML correspondante sera alors présente dans NetBeans, si vous déclarez ce namespace dans votre document XML.

Menu 'Tools', 'DTD and XML Schema' Sélectionnez 'User Catalog' puis cliquez 'Add local DTD/Schema' Cochez 'System ID' et entrez le namespace, puis sélectionnez la XSD dans le champ 'File'
Ouvrez le menu des DTD/XSD, ajoutez la paire namespace/XSD dans le catalogue 'Utilisateur' (c'est à dire 'Custom'), et indiquez le namespace (System ID) et sa XSD

Attention à bien vérifier que NetBeans n'est pas allé mettre en cache une autre XSD. Pour cela, vérifiez qu'il n'existe pas de fichier nbproject/private/retriever/catalog.xml ni nbproject/private/retriever/le.namespace/ajoute/index dans votre dossier de projet. S'ils existent, supprimez-les.

Supprimez le cache du project si besoin
Ces deux fichiers sont à supprimer s'ils existent dans le dossier du projet
Le résultat final: une auto-complétion fonctionnelle
L'auto-complétion sera disponible en déclarant l'utilisation du namespace dans le fichier XML