Journal Changement subite du comportement de it-edit ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
-10
5
déc.
2016

Sommaire

Changement subite du comportement de it-edit ?

Vous avez récemment fait une mise a jour de votre distribution,

et vous avez remarquer que votre éditeur avec terminaux intégrées: it-edit

souffrait de problèmes récurrents…

Et bien c'est sûrement a cause d'un changement de version de Gtk3 (<= gtk+-3.18 vers >= gtk-+3.20).

Je vous parle de it-edit 2.91 la version antérieur étant déprécier maintenant !


Introduction aux changements

Quand je distribue un programme sous forme de tarball ou de paquetage debian

et bien je copie les sources dans le dossier ${pkgdatadir} (/usr(/local)/share/it-edit/source) accompagner

d'un Makefile, multi-usages.


Je vous recommande donc de faire les peu de changements présenté içi,

grâce aux sources, et au Makefile, livrée avec it-edit.

Afin que it-edit soit de nouveau comme avant !


Problème de police de caractères ?

Si vous avez remarquer que it-edit a changer de police après la mise a jours

et que cela vous dérange, je vous invite a faire le petit changement suivant

dans la fonction situé dans le fichier situé:

/usr(/local)/share/it-edit/source/GUI/configure/configure_gui_elements.c

nommer: setting_sourceview_settings(...).

Une fois que vous avez trouver le fichier:

éditer le ainsi: Vous pouvez faire un copier-coller en écrasant la fonction.

void setting_sourceview_settings(GtkSourceView *view) {
 /** Configure the GtkSourceView according to configuration. **/

 #ifdef DEBUG
   DEBUG_FUNC_MARK
 #endif

 gtk_source_view_set_auto_indent(view, settings.use_auto_indent) ;
 gtk_source_view_set_indent_on_tab(view, TRUE);
 gtk_source_view_set_indent_width(view, settings.indent_width) ;

 gtk_source_view_set_insert_spaces_instead_of_tabs(view, settings.use_spaces_as_tabs);
 /** FIXME: ??? gtk_source_view_set_smart_home_end(view, GTK_SOURCE_SMART_HOME_END_BEFORE) ;   ??? **/


 gtk_source_view_set_show_line_numbers(view, settings.display_line_numbers) ;

 gtk_source_view_set_tab_width(view, settings.tabs_width) ;

 if (settings.display_tabs_chars) {
   gtk_source_view_set_draw_spaces(view, GTK_SOURCE_DRAW_SPACES_TAB) ;
 }




 /** This part of the function can be replace,
 GtkCssProvider *provider = gtk_css_provider_new ();

 gchar *text_css = g_strconcat("GtkTextView {\n"
                                "font : ",
                                settings.editor_font,
                                "}\n",
                                NULL) ;


 gtk_css_provider_load_from_data(provider, text_css, -1, NULL) ;

 g_free(text_css) ;


 GdkDisplay *display = gdk_display_get_default() ;

 GdkScreen *screen = gdk_display_get_default_screen(display) ;

 gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER) ;



 g_object_unref(provider) ;
 */

 /** By this GtkTextView configuration setting: **/
 gtk_text_view_set_monospace( GTK_TEXT_VIEW(view), TRUE ) ;

 return ;
}

Cela remplace la police actuelle par la police Monospace par défaut du widget GtkTextView.


Problèmes au démarrage de it-edit.

Si vous avez des problèmes en lançant it-edit:

  • La barre latéral de terminaux qui ne s'affiche plus, ou quand elle veut.

  • Problèmes d'affichage de la barre de recherche(s) et de remplacement(s).

  • Des problèmes pour ouvrir un fichier.

Éditez la fin de la fonction main(...) situé dans le fichier:

/usr(/local)/share/it-edit/source/main.c

Comme cela,

changez juste la fin de la fonction main(...) afin d'introduire la boucle (while(…) indiquer) au bon endroit:

//...

int main(int argc, char*argv[]) {

 //...

 /** Hide the search and replace bar at application start. **/
 gtk_widget_hide(gui->search_and_replace-search_and_replace_main_vbox) ;

 /** Hide the terminals at application start. **/
 gtk_widget_hide(gui->terminal_notebook) ;


 /** Insert the following loop (which wait until all events are completed)
   * is sufficent so that you get no problems by starting it-edit.
   ***********************************************************************/
 while ( gtk_events_pending() ) {

   gtk_main_iteration() ;

 }



 /** Set editor noetbook page. **/
 gtk_notebook_set_current_page(GTK_NOTEBOOK(gui->main_notebook), 0) ;



 /** This function set the terminals default size in relationship to your screen relationship because the application is maximize at start. And set startup settings. **/
 g_signal_connect(G_OBJECT(gui->main_window), "size-allocate", G_CALLBACK(on_size_allocated), NULL) ;

 gtk_main() ;

 exit(EXIT_SUCCESS) ;

}

/** ... **/

Rendez les changements effectifs.

Une fois ces deux fonctions réparés,

il nous reste a compiler it-edit de nouveau et a le réinstaller dans le dossier des binaires.

Aller dans le dossier ${pkgdatadir} situer à:

/usr(/local)/share/it-edit

Et taper la commande suivante:

$ sudo make installl'
# or
$ su root
...
$ make install

Maintenant it-edit devrai fonctionner comme avant a part que si vous

avez éditer la fonction setting_sourceview_settings(...)

et bien vous ne devriez pas pouvoir changer la police de l'éditeur.

Mais elle ne vous plaisait pas de toute façon.

Peut-être subsiste-t-ils encore quelques problèmes mineurs

que je n'ai pas encore remarquer avec la nouvelle mouture de Gtk3.

Mais malgré tout it-edit reste un bon éditeur avec terminaux intégrés.


Infos et News

Une nouvelle version de it-edit est prévue pour l'année prochaine !

Je n'ai actuellement pas encore écrit une seule ligne mais mon savoir concernant gtk s'est affutée…

Je vous promet un it-edit encore plus puissant pour l'année prochaine…

Quelques idées d'améliorations en vrac:

  • La possibilité d'ouvrir une URI non locale.

  • La possibilité de mettre les permission voulus lors de la sauvegarde

   Cela permettra aux programmeurs qui utilisent un langage de script

   qu'il n'y aura plus de besoin de rendre la script exécutable  

   pour le lancer immédiatement dans un des terminaux intégrer.    
  • L'on corrigera ce petit problème avec l'historique qu'a it-edit.


   Et que le gnome-terminal semble avoir aussi.
  • Peut-être que it-edit embarquera un correcteur orthographique,…

Merci a tout les utilisateurs de it-edit,

Votre serviteur.

PS: Pour tous les liens utiles concernant it-edit je vous renvoie a la dépêche de la présentation de it-edit 2.91 (la dernière version).

  • # Commentaire supprimé

    Posté par  . Évalué à 6.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Problème de ton

      Posté par  . Évalué à 3.

      C'est clair, ça pique les yeux à chaque phrase.

      Ça ferait sûrement une dépêche très acceptable en ajoutant une présentation du logiciel puis une explication des changements entre Gtk 3.18 et 3.20 avant ton texte.

      En complétant avec un petit didacticiel expliquant la création du paquet patché (avec apt-source et l'équivalent rpm), ça peut même devenir une excellente dépêche.

      Cette signature est publiée sous licence WTFPL

      • [^] # Re: Désolé dépêche refuser, donc auto-correction D.I.Y dans le journal.

        Posté par  (site web personnel) . Évalué à 1.

        Merci pour vos commentaires,

        j'ai proposer le texte de réparation, D.I.Y, de it-edit comme dépêche qui a été refusée.

        Ils m'ont dit de le mettre dans le journal.


        Je n'ai actuellement vraiment pas le temps du tout de m'occuper des légers changements a faire dans it-edit

        afin que cela fonctionne comme avec gtk+-3.18.

        Ce n'est pas de ma faute si gtk+3 change de comportement dans un changement de version mineur.


        Et concernant le vieux concept de it-edit c.a.d entre autre

        intégrer des terminaux, dans un éditeur de texte, et il est loin de ne faire que cela.

        Vous sauriez comme cette outil est simple et pratique,

        une fois que l'on connais les peut de choses qui change la donne,

        si vous vous en seriez servis un peu.


        Je me sert de it-edit au quotidiens, comme d'autres, et les IDE Zombie je les enm€¬des puisque

        ils ont perdus leur âmes et ne savent même pas les lignes de commandes qui compilent leur programme.

        :note:

        L'autre jours j'ai vue un win (débutant) qui après avoir packager son programme avec inno-setup s'étonnait de voir apparaître la fenêtre de la console Windows une fois le programme installer au lancement.

        Le switch -mwindows connais pas, ce qui est bien la preuve de ce que je dit.

        je me demande encore si cette pauvre victime IDE Zombie de Windows

        se rappelle encore le pourquoi du comment il faut

        compiler en mode release son programme avec conne-lock.

        PS2> Désolé, je ne suis plus aussi courtois qu'avant car on m'a tellement martyriser (surtout parler sans savoir) sur les forums,

        que j'en ai perdu le sens de la courtoisie ! (sans mise en gras)

        • [^] # Re: Désolé dépêche refuser, donc auto-correction D.I.Y dans le journal.

          Posté par  (site web personnel) . Évalué à 4.

          Un conseil en passant : change de mise en forme. Avoir des phrases coupées sur plusieurs paragraphes et des lignes horizontales partout fait que ton journal et ton commentaire sont illisibles. Vraiment.

          Remis en forme juste en faisant des paragraphes normaux (sans rien corriger d'autre) :


          Merci pour vos commentaires, j'ai proposer le texte de réparation, D.I.Y, de it-edit comme dépêche qui a été refusée. Ils m'ont dit de le mettre dans le journal.

          Je n'ai actuellement vraiment pas le temps du tout de m'occuper des légers changements a faire dans it-edit afin que cela fonctionne comme avec gtk+-3.18. Ce n'est pas de ma faute si gtk+3 change de comportement dans un changement de version mineur.

          Et concernant le vieux concept de it-edit c.a.d entre autre intégrer des terminaux, dans un éditeur de texte, et il est loin de ne faire que cela. Vous sauriez comme cette outil est simple et pratique, une fois que l'on connais les peut de choses qui change la donne, si vous vous en seriez servis un peu.

          Je me sert de it-edit au quotidiens, comme d'autres, et les IDE Zombie je les enm€¬des puisque ils ont perdus leur âmes et ne savent même pas les lignes de commandes qui compilent leur programme.

          note : L'autre jours j'ai vue un win (débutant) qui après avoir packager son programme avec inno-setup s'étonnait de voir apparaître la fenêtre de la console Windows une fois le programme installer au lancement.

          Le switch -mwindows connais pas, ce qui est bien la preuve de ce que je dit.

          je me demande encore si cette pauvre victime IDE Zombie de Windows se rappelle encore le pourquoi du comment il faut compiler en mode release son programme avec conne-lock.

          PS2> Désolé, je ne suis plus aussi courtois qu'avant car on m'a tellement martyriser (surtout parler sans savoir) sur les forums, que j'en ai perdu le sens de la courtoisie ! (sans mise en gras)


          Vous sauriez comme cette outil est simple et pratique […] si vous vous en seriez servis un peu.
          les IDE Zombie je les enm€¬des puisque ils ont perdus leur âmes et ne savent même pas les lignes de commandes qui compilent leur programme

          Si le but est de ne pas donner envie, c'est pas trop mal.

          • [^] # Re: Désolé dépêche refuser, donc auto-correction D.I.Y dans le journal.

            Posté par  (site web personnel) . Évalué à 1.

            Le but est de ne pas perdre de vue le premier outil permettant de dialoguer avec la machine en même temps que l'édition de code source.

            Et le but de it-edit et de me simplifier, la vie au maximum.

            Comme avant it-edit, je travaillais avec kate et un terminal ouvert, j'ai décider de réunir les deux en un outil: sans devoir switcher de l'éditeur vers le terminal a chaque fois.

            Je pense que même en développement:

            Le processus de compilation doit être automatiser avec un Makefile.

            Et non en configurant des projets avec des IDE.

            Afin de savoir ce que l'on fait.

            Créer un un Makefile pour un projet ne revient pas a configurer un IDE.

            :note:
            Vous pourrez jeter un oeil a mon générateur de projet qui ne fait guère plus que de générer un Makefile

            "according to your settings":

            le programme mk-project, qui n'est pas encore mûre pour en parler vraiment aux autre, même si je le mentionne içi.


            Car il ne suffit pas d'appuyer sur un bouton pour, par exemple, choisir les options de compilation (enable/disable -O2 dans code bock), les IDE permette certes de tester différentes options rapidement comme tester le -O1 puis -O2 puis -O3 et cela est pratique a condition de savoir ce que l'on fait.

            Mais savez vous ce que font les options d'optimisations réellement, y a de quoi se poser la question est-ce la peine de faire de l'optimisation dans la rédaction du code ?

            Ces IDE peuvent être dangereux en termes de savoir, oublié par des surcouches, car il suffit d'activer telle ou telle option sans savoir a se soucier ce que cette option fait réellement a son programme.

            Alors finalement l'on se crée un template une fois que l'on a sa formule mais si l'on vous vous retrouvez face a un terminal vous ne saurez limite même pas ce que c'est, nie la ou les lignes a taper pour compiler votre programme.

            Ce n'est pas parce que j'automatise des taches grâce a make que je ne sais pas ce que je fait !


            C'est le même principe que de se protéger contre soit même en C++ avec par exemple les smart pointers.

            Chose que je trouve débile, se protéger contre soit même, comme si l'on ne savait qu'il faut libérer la mémoire que l'on a demander au heap.

            Chose que l'on risque d'oublier a force d'utiliser constamment des smart pointers…

            i.e si l'on débute avec constamment avec des smart pointers, il y des chances pour que cette lacune s'installe réellement, sans déconner !

            Même si les smart pointers permettent d'éviter des memory leaks involontaires, je ne veut pas d'un objet encapsulant un pointeur plus lourd que la taille d'une adresse mémoire mais d'un pointeur brute rapide est puissant. vive get(), libéré.


            Alors pour reprendre l'exemple du win d'au dessus qui est un étudiant/débutant:

            que leur apprendre ?

            Soit: que il faut ajouter le switch -mwindows pour masquer la console Windows au lancement du programme.

            Soit: de compiler son projet "code-block" en mode "release".

            La réponse est bien sur les deux,
            mais que vont réellement retenir les étudiants ?

            Le savoir ou le bouton pour compiler en mode "release".


            En parlant de code-block il n'intègre pas de terminal mais il lance un xterm en mode debug.

            Quand aux éditeurs de texte ou il est optionnellement possible d'intégrer un terminal avec certains, mais il le font de bien piètre manière je trouve pour celui qui a besoin d'un terminal dans son éditeur de nos jours (ce n'est pas pratique l'endroit et la taille du terminal, etc…), car c'est secondaires ce vieux truc de terminal intégrées.


            J'ai implémenter ce vieux concept a ma sauce, car j'ai un coté rétro pour ce qui est du savoir.

            Un port série réel n'existe quasiment plus aujourd'hui mais combien de moyens de connexion émulent le fonctionnement d'une connexion série nos jours: USB non ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.