• [^] # Re: Emacs un jour, Emacs toujours

    Posté par (site web personnel) . En réponse au journal Quel IDE pour quel langage. Évalué à 3.

    Je trouve chiante et instable la façon de gérer les extensions emacs : cela a peut être changer mais pour moi, on est loin de npm/ go get /urpmi il s'agit toujours d'aller chercher une version à la main et modifier le fichier de config.

    Instable je ne sais pas parceque je n'utilise quasiment que des extensions qui sont fournies par mon système de ports ou installable directement depuis Emacs. Après effectivement il faut souvent copier-coller quelques lignes dans son fichier dot.emacs. Comme on fichier `dot.emacs' est sous SCM je peux te donner le log des dernières années:

    2017年12月03日 11:43:32 +0100 Allow long lines in Lisp
    2017年11月25日 10:13:17 +0100 Add simplified window and frame navigation
    2017年11月02日 16:56:33 +0100 Fix emacs configuration
    2017年11月02日 08:07:47 +0100 Update for new system
    2017年09月25日 14:46:37 +0200 Configure slime as in portacle
    2017年09月13日 10:09:05 +0200 Install slime
    2017年06月06日 15:16:11 +0200 Update emacs settings
    2016年12月12日 10:34:45 +0100 Update merlin configuration
    2015年08月28日 15:29:12 +0200 Update style
    2015年08月28日 15:15:38 +0200 Record company PHP Style
    2015年06月02日 09:21:04 +0200 Configure merlin and ocp-indent
    2015年06月02日 08:47:35 +0200 Remove broken hunspell support
    2015年03月24日 14:45:36 +0100 Add PHP mode
    2015年02月03日 09:48:02 +0100 Change the font size on Darwin
    2014年03月03日 10:37:44 +0100 Remove CEDET
    2014年03月03日 10:34:05 +0100 Disable the tool-bar and the scroll-bar
    2014年03月03日 10:23:38 +0100 Add trac-wiki
    2014年03月03日 10:22:00 +0100 Add Markdown mode
    2013年08月18日 08:36:18 +0200 Update key shortcuts
    2013年08月18日 08:32:55 +0200 Correct the name of ocamldebug
    2013年08月04日 16:20:14 +0200 Whitespace mode
    2013年08月04日 16:03:04 +0200 Rework dot.emacs
    2013年07月20日 19:07:20 +0200 Add slime
    

    (Généré avec git log --pretty='format:%ci %s').

    Pour quelqu'un qui travaille vraiment beaucoup avec Emacs, je ne l'ai jamais utilisé moins de 20h par semaine dans l'historique que tu vois, et qui se sait se satisfaire des réglages par défaut sans trop faire de customisation, je trouve que s'il s'agit d'un effort à faire, ce n'est pas non plus disproportionné.

    Et une fois, le truc installé, il faut deviner tout seul comment le module marche. Il me semble que tuareg est fournis de base maintenant, mais il ne semble pas que tu peux "jumper" d'un fichier à l'autre pour trouver définition de code et usage de code.

    La navigation de fichier à fichier peut effectivement laisser à désirer dans le réglage de base par rapport au confort de PHP Storm (sauter à l'implémentation etc.) mais cela dépend des modes. Par exemple Slime (pour CL) sait le faire, mais je crois que pour OCaml cela n'existe pas. (Pour C et le reste, je crois que l'outil magique est CEDET.)

    tu n'as pas auto-complétion sémantique ou de library (à moins d'ouvrir tout dans un buffer...) [...], ou de vérification de la syntaxe en ligne.

    En ce qui concerne OCaml, merlin apporte tout cela: la syntaxe est testée à la sauvegarde et l'auto-complétion marche (en tout cas pas plus mal que dans les IDE que j'ai utilisé). Pour Lisp, slime fait assez bien cela – sauf la vérification de syntaxe mais en pratique on programme interactivement c'est à dire qu'on fait des va-et-viens constants entre le programme et la REPL et il y a un petit raccourci qui évalue la défintion en cours (C-M-x) ce qui rapporte les erreurs. L'approche des IDE de type Visual Studio ou PHP Storm donne plus d'information interactives, mais d'une c'est assez lent et de deux je n'ai jamais réussi à m'habituer à tous ces coloriages (genre rouge faute de syntaxe, violet pour une infraction à la coding guideline XY, orange pour ceci-cela) et les petits tooltips qui vont avec sont assez pénibles – je préfère l'approche de merlin par exemple qui met à jour cette information à la sauvegarde, c'est à dire à un moment que je choisis.

    tu n'as pas [...] de refactoring [...]

    Ça oui!