Sam & Max » try / except http://sametmax.com Du code, du cul Sat, 07 Nov 2015 10:56:13 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Wrap in Try / Except dans Sublime Text 13 http://sametmax.com/wrap-in-try-except-dans-sublime-text/ http://sametmax.com/wrap-in-try-except-dans-sublime-text/#comments Thu, 20 Feb 2014 22:57:40 +0000 http://sametmax.com/?p=9210 Très souvent il m’arrive de vouloir mettre un bout de mon code dans un blog try / except, et il faut couper le bloc de code, ecrire le try/except, coller le code, puis re-indenter au besoin.

C’est con, on a un éditeur pour faire le taff pour nous et d’ailleurs, PyDev le fait très bien. Soyons fainéant.

On va se rajouter une petit snippet qui permet de faire ça automatiquement. Il faut ouvrir le menu Tools > new snippet et un peu de xeumeuleu dedans :

<snippet>
<content><![CDATA[
${SELECTION/^( *)([^ ].*)/$1/g}try:
${SELECTION/(^ *|\n *)/$1    /g}
${SELECTION/^( *)([^ ].*)/$1/g}except ${1:Exception as e}:
    ${SELECTION/^( *)([^ ].*)/$1/g}${2:import ipdb; ipdb.set_trace()}
]]></content>
    <scope>source.python</scope>
    <description>Wrap in Try/Except</description>
</snippet>

Ca récupère la selection, place le try/except, replace la sélection et reindente grâce à une regex. Et seulement si le fichier est du code Python. Joie.

On sauvegarde ça sous un nom clair genre “wrap_in_try_except.sublime-snippet”.

Puis on fait un petit tour dans Préférence > Key Bindings – User et on se rajoute un raccourci clavier pour profiter de notre nouveau joujou :

      { "keys": ["ctrl+shift+y"], "command": "insert_snippet", "args": {"name": "Packages/User/wrap_in_try_except.sublime-snippet"} }

Et voilà :

ligne_qui_pouet

Devient, après selection et un petit ctrl + shift + y :

try:
    ligne_qui_pouet
except Exception as e:
    import ipdb; ipdb.set_trace()

On peut tabuler entre la définition de l’exception à catcher et le contenu du block except pour les changer au besoin rapidement.

Par contre, ça ne marche que si on indente avec des espaces. Mais ceux qui utilisent des tabs pour indenter ne méritent pas qu’on les aide de toute façon (si c’est votre cas, quittez ce site, tout de suite, houste !).

]]>
http://sametmax.com/wrap-in-try-except-dans-sublime-text/feed/ 13