2011-03-24 30 views
23

Antes solo he estado cortando y pegando código en mi archivo .emacs, pero luego decidí agregar alguna funcionalidad Maven a emacs. Ahora, no veo cómo pude estropear esto, pero anoche seguí recibiendo el error que puse en el título cuando ejecuto M-x jarl-mvn-exec. Me dormí en él, y volví al día siguiente, pero todavía no estoy llegando a ninguna parte.argumento de tipo incorrecto: stringp, nil

(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")) 

Respuesta

31

Deberá proporcionar más información para estar seguro. Intente configurar

(setq debug-on-error t) 

que le dará un seguimiento de pila que muestra qué función se está quejando de que la cadena sea nula.

Supongo que buffer-file-name devuelve nada, y ahí es donde radica el problema (no todos los almacenamientos intermedios tienen nombres de archivo). Consulte la sección debugging de An Introduction To Programming in Emacs Lisp, o la sección debugging del manual de Emacs Lisp.

+0

Mi intención era obtener el pom sobre el archivo para el búfer actual en emacs, pero cambié el búfer a uno diferente (uno sin archivos) para ver los resultados de mis comandos de maven. – HahaHortness

11

El secreto para encontrar un problema en su archivo init no es un secreto: búsqueda binaria.

Use comment-region para comentar la mitad de su archivo init, luego 3/4, 7/8, ... Es muy rápido para identificar el problema. comment-region también no comentarios: C-h f comment-region RET.

Cuestiones relacionadas