{"id":305,"date":"2013-12-08T18:27:30","date_gmt":"2013-12-08T18:27:30","guid":{"rendered":"http:\/\/e-ware.org\/blog\/?p=305"},"modified":"2014-05-20T07:51:07","modified_gmt":"2014-05-20T07:51:07","slug":"plugin-geany-python-good-code","status":"publish","type":"post","link":"http:\/\/e-ware.org\/blog\/plugin-geany-python-good-code\/","title":{"rendered":"Plugin Geany: Python Good Code"},"content":{"rendered":"<p style=\"text-align: justify;\">Chi conosce Geany sapr\u00e0 che esso \u00e8 un ottimo IDE, multipiattaforma, leggero e non specifico che pertanto si presta allo sviluppo di progetti scritti in linguaggi di programmazione diversi tra loro. Grazie a questa sua dinamicit\u00e0 da diversi anni lo uso ormai come ambiente di sviluppo per tutti i miei progetti, siano essi scritti in PHP, Python, C e Stallman solo sa quale altre linguaggio. Essendo un IDE non specifico, Geany d\u00e0 la possibilit\u00e0 agli sviluppatori di tutto il mondo di scrivere plugin per il software che ne estendono le features di base.<\/p>\n<p style=\"text-align: justify;\">Dovendo, per lavoro e per diletto, scrivere molto codice in Python e rilasciando poi quanto scritto con licenze GPL et simila, molto spesso mi ritrovo ad effettuare lavori di revisione del codice per fare in modo che lo stesso si adatti agli standard dello stile <a href=\"http:\/\/www.python.org\/dev\/peps\/pep-0008\/\" target=\"_blank\">PEP8<\/a>, ovvero una serie di linee guida comuni da seguire per scrivere del codice uniforme e standard che sia facilmente interpretabile da tutto il mondo degli sviluppatori Python. Fortunatamente esistono dei tool da linea di comando che permettono di analizzare direttamente un listato e di ottenere dei messaggi l\u00ec dove una linea di codice non corrisponde agli standard. Dover uscire dal proprio ambiente di lavoro per poter usare questi tools \u00e8 molto scomodo poich\u00e9 sfavorisce la continuit\u00e0 e crea possibili distrazioni oltre che perdite di tempo. Data questa premessa ho deciso di creare un plugin per Geany che permette l&#8217;analisi del proprio codice direttamente dall&#8217;interno del software.<\/p>\n<p style=\"text-align: justify;\">Il plugin si chiama <strong>Python Good Code<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Python Good Code permette, una volta installato, di ottenere una voce di menu che analizza al volo il codice e restituisce i messaggi di errore nella comoda finestra dei messaggi di Geany. In questo modo baster\u00e0 cliccare sulla stringa di errore per essere portati con il puntatore direttamente sulla riga oggetto del messaggio all&#8217;interno del codice. Tra le feature del plugin troviamo:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Menu rapido per l&#8217;analisi del codice<\/li>\n<li>Scorciatoia da tastiera configurabile per il richiamo del suddetto menu<\/li>\n<li>Tool di analisi configurabile (di default verr\u00e0 impostato flake8)<\/li>\n<li>Possibilit\u00e0 di generare un file di report in cui salvare i messaggi di errore<\/li>\n<li>Click rapido per l&#8217;evidenziazione della linea di codice soggetta all&#8217;errore<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>INSTALLAZIONE<\/strong><\/p>\n<p style=\"text-align: justify;\">L&#8217;installazione del plugin \u00e8 molto semplice. Basta scaricare il sorgente dal <a href=\"https:\/\/github.com\/OpenCode\/geany-python-good-code\" target=\"_blank\">repository GitHub<\/a>, spostarsi all&#8217;interno della cartella appena scaricata e seguire le istruzioni riportate nel file INSTALL.<\/p>\n<p style=\"text-align: justify;\"><strong>CONFIGURAZIONE<\/strong><\/p>\n<p style=\"text-align: justify;\">Una volta installato il plugin, all&#8217;interno del menu <em>Strumenti -&gt; Gestione Plugin<\/em> sar\u00e0 possibile trovare la voce <em>Python Good Code<\/em>. Abilitando la spunta si abilita il plugin stesso. A questo punto la voce <em>Preferenze<\/em> sar\u00e0 abilitata e sar\u00e0 possibile cos\u00ec impostare le voci presenti.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-preferenze.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-306\" src=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-preferenze.png\" alt=\"geany python good code preferenze\" width=\"556\" height=\"570\" srcset=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-preferenze.png 556w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-preferenze-292x300.png 292w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Per la configurazione delle scorciatoie da tastiera, invece, bisogner\u00e0 recarsi in <em>Modifiche -&gt; Preferenze -&gt; Scorciatoie da Tastiera<\/em> e alla voce <em>Python Good Code \/\u00a0Launch Python Analisys Tool<\/em> effettuare un doppio click e digitare la combinazione di tasti che si preferisce utilizzare.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-scorciatoie-tastiera.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-307\" src=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-scorciatoie-tastiera.png\" alt=\"geant python good code scorciatoie tastiera\" width=\"801\" height=\"556\" srcset=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-scorciatoie-tastiera.png 801w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-scorciatoie-tastiera-300x208.png 300w\" sizes=\"auto, (max-width: 801px) 100vw, 801px\" \/><\/a><strong>USO<\/strong><\/p>\n<p style=\"text-align: justify;\">Mediante la scorciatoia da tastiera configurata o cliccando sul menu Strumenti -&gt; Python Good Code sar\u00e0 possibile analizzare il codice Python aperto nella tab in focus nell&#8217;IDE. Eventuali messaggi verranno mostrati nella finestra dei messaggi di Geany<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-308\" src=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi.png\" alt=\"python-good-code-messaggi\" width=\"1366\" height=\"768\" srcset=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi.png 1366w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-300x168.png 300w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-1024x575.png 1024w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-click-rapido.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-309\" src=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-click-rapido.png\" alt=\"python-good-code-messaggi-click-rapido\" width=\"1366\" height=\"768\" srcset=\"http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-click-rapido.png 1366w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-click-rapido-300x168.png 300w, http:\/\/e-ware.org\/blog\/wp-content\/uploads\/2013\/12\/python-good-code-messaggi-click-rapido-1024x575.png 1024w\" sizes=\"auto, (max-width: 1366px) 100vw, 1366px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chi conosce Geany sapr\u00e0 che esso \u00e8 un ottimo IDE, multipiattaforma, leggero e non specifico che pertanto si presta allo sviluppo di progetti scritti in linguaggi di programmazione diversi tra loro. Grazie a questa sua dinamicit\u00e0 da diversi anni lo uso ormai come ambiente di sviluppo per tutti i miei progetti, siano essi scritti in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[80,5],"tags":[82,83,81,84],"class_list":["post-305","post","type-post","status-publish","format-standard","hentry","category-geany","category-python","tag-ide","tag-pep8","tag-plugin","tag-sviluppo"],"views":3596,"_links":{"self":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/305","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/comments?post=305"}],"version-history":[{"count":5,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions"}],"predecessor-version":[{"id":383,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/posts\/305\/revisions\/383"}],"wp:attachment":[{"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/media?parent=305"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/categories?post=305"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/e-ware.org\/blog\/wp-json\/wp\/v2\/tags?post=305"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}