Quitter le forum et retourner au site

ubuntu 16.04.2, symfony2, chromium et sublime text

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

ubuntu 16.04.2, symfony2, chromium et sublime text

Message par le Manchot Masqué »

Bon, ce qui va suivre concerne clairement les développeurs PHP.
Symfony2 est un framework PHP bien connu, et sublime text un éditeur malheureusement non libre et payant, mais qui fait son boulot parmi d'autres (chacun ses goûts).
Le but est le suivant : ouvrir directement les fichiers en erreur quand on est sous chromium et qu'on a un plantage dans la console SF2. Pour cela, on va "apprendre" au navigateur à gérer un nouveau protocole de type "subl://URL".

Cet article est honteusement pompé sur https://stackoverflow.com/questions/146 ... for-ubuntu, mais j'ai quand même du adapter les choses un tantinet :

Phase 1 : on créé /usr/share/applications/sublime-handler.desktop

Code : Tout sélectionner

[Desktop Entry]
Name=Sublime Text 2 URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme subl://
Exec=/usr/local/bin/sublime-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl;
Icon=sublime-text-2
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text 2 URL Handler
Phase 2 : on met à jour la base

Code : Tout sélectionner

update-desktop-database
Phase 3 : on créé /usr/local/bin/sublime-handler

Code : Tout sélectionner

!/usr/bin/env bash

request=${1:23}               # Delete the first 23 characters
request=${request//%2F//}     # Replace %2F with /
request=${request/&line=/:}   # Replace &line= with :
request=${request/&column=/:} # Replace &column= with :
subl $request       # Launch Sublime Text
EN N'OUBLIANT PAS DE FAIRE LE

Code : Tout sélectionner

$ chmod +x /usr/local/bin/sublime-handler
On peut ensuite tester en console pour voir si ça marche avec une commande du type :

Code : Tout sélectionner

xdg-open "subl://open?url=file:///home/toto/$mon_projet_sf/src/AppBundle/Controller/DefaultController.php&line=18"
En fait, chromium n'apprend pas réellement à gérer le protocole "subl://" : il appelle simplement xdg-open pour le prendre en charge, et les fichiers que nous avons créés ci-dessus servent à implémenter ce protocole inconnu pour xdg-open.

Au final, le développeur arrive directement sur le fichier en erreur, avec un gain de temps fort appréciable, ce qui est le but recherché...

Dernier détail, mais de taille : ne pas oublier de rajouter la ligne 'ide' dans le fichier app/config/config.yml :

Code : Tout sélectionner

framework:
    ide: 'sublime'
Répondre