J'utilise l'extension cscope emacs (et je la trouve très utile). Malheureusement, le comportement par défaut de la recherche dans le répertoire courant et ci-dessous est insuffisant pour moi, donc j'utilise le répertoire cscope-set-initial dans le répertoire de mon choix. Malheureusement, cela est devenu insuffisant pour moi aussi parce que j'ai plusieurs projets différents avec chacun leur propre répertoire "initial".Habillage d'une fonction quotée dans emacs-lisp
J'ai mis en place des raccourcis clavier pour les trois méthodes Cscope j'utilise le plus dans emacs
(global-set-key [f9] 'cscope-find-this-text-string)
(global-set-key [f8] 'cscope-find-global-definition)
(global-set-key [f7] 'cscope-find-this-symbol)
je me suis dit que ce serait assez facile à en quelque sorte envelopper ces appels avec une fonction à exécuter cscope-set-initial -directory sur un chemin donné (généré en regardant ce que le nom du fichier-tampon est). Mais j'ai encore échoué!
(global-set-key [f9] (lambda() (interactive) (cscope-set-initial-directory "blah") 'cscope-find-this-text-string))
ne fonctionne pas. J'ai également essayé d'ajouter des crochets aux deux crochets cscope, mais aucun de ceux-ci ne semble jamais être appelé pendant mes habitudes d'utilisation normales. Je ne serais même pas dérangé de l'exécuter une fois chaque fois que je passerais les tampons, mais je n'ai vu aucun crochet pour ça: /.
Quelqu'un peut-il aider? :)
Doux, votre conseil m'a totalement aidé. J'ai ajouté fini juste d'ajouter le (appel-interactivement 'bla) à ma tentative initiale et cela a fonctionné. Ce que je voulais vraiment faire était quelque chose de vraiment fantaisie comme avoir une fonction wrapper qui renvoyait une instruction lambda qui définissait le dir, puis appelait la fonction donnée.Mais je suppose que ce n'est pas possible à cause de la façon dont emacs-lisp effectue le scoping (l'argument donné au wrapper tombe hors de la portée dans l'instruction lambda renvoyée). Peut-être qu'il y a une façon différente de penser à ce problème dans emacs-lisp land? – jdizzle
Je ne comprends pas très bien ce que vous décrivez, retourner une instruction lambda (fonction) semble inutile car il n'y a pas vraiment besoin de programmation d'ordre supérieur dans cette situation. –