web-dev-qa-db-fra.com

argument de type incorrect: stringp, nil

Auparavant, je venais de couper et de coller du code dans mon fichier .emacs, mais j'ai alors décidé d'ajouter des fonctionnalités maven à emacs. Maintenant, je ne vois pas comment j'ai pu gâcher ça, mais hier soir, je n'arrêtais pas d'obtenir l'erreur que j'ai mise dans le titre lorsque je lance M-x jarl-mvn-exec. J'ai dormi dessus et je suis revenu le lendemain mais je n'arrive toujours à rien.

(defun jarl-get-pom ()
  (concat (locate-dominating-file 
       (buffer-file-name 
        (current-buffer))
       "pom.xml")
      "pom.xml"))

(defun jarl-visit-pom ()
  (interactive)
  (find-file (jarl-get-pom)))

(defun jarl-mvn-exec ()
  (interactive)
  (switch-to-buffer (get-buffer-create "maven"))
  (start-process-Shell-command "mvn-exec" "maven" "mvn" "-f" (jarl-get-pom) "compile")
  (start-process-Shell-command "mvn-exec" "maven" "mvn" "-f" (jarl-get-pom) "exec:exec"))
27
HahaHortness

Vous devrez fournir plus d'informations pour être sûr. Essayez de définir

(setq debug-on-error t)

ce qui vous donnera une trace de pile indiquant quelle fonction se plaint que la chaîne est nulle.

Je suppose que buffer-file-name renvoie nil, et c'est là que réside le problème (tous les tampons n'ont pas de nom de fichier). Consultez la section débogage de An Introduction To Programming in Emacs LISP , ou la section debugging du manuel Emacs LISP.

37
Trey Jackson

Le secret pour trouver un problème dans votre fichier init n'est pas un secret: recherche binaire.

Utilisation comment-region pour commenter la moitié de votre fichier init, puis 3/4, 7/8, ... Il est très très rapide d'identifier le problème. comment-region décommente également: C-h f comment-region RET.

14
Drew