Question

Je continue à obtenir cette erreur d'erreur et similaires en utilisant le mode php-on emacs23 sur Ubuntu:

Debugger entered--Lisp error: (void-function php-template-if-hook)
  php-template-if-hook()
  abbrev-insert(if #("if" 0 2 (fontified t face font-lock-keyword-face)) 414 416)
  #[(G73404 funs global) "[Byte Code]"
  apply(#[(G73404 funs global "[Byte Code]"
  (lambda (&rest --cl-rest--) (apply #[... "[Byte Code]"
  expand-abbrev()
  self-insert-command(1)
  c-electric-paren(nil)
  call-interactively(c-electric-paren nil nil)

quand je tape if(, et l'erreur ci-dessous lorsque je tape array( ou quelque chose qui se termine par array(, par exemple, is_array(:

Debugger entered--Lisp error: (void-function php-template-if-hook)
  php-template-if-hook()
  abbrev-insert(if #("if" 0 2 (fontified t face font-lock-keyword-face)) 414 416)
  #[(G73404 funs global) "[Byte code]"
  apply(#[(G73404 funs global "[Byte Code]"
  (lambda (&rest --cl-rest--) (apply #[... "[Byte Code]"
  expand-abbrev()
  self-insert-command(1)
  c-electric-paren(nil)
  call-interactively(c-electric-paren nil nil)

Cette erreur est élevée, même lorsque j'utilise le kit de démarrage emacs. Tout le monde fixe un problème similaire?

Le php-mode.el j'utilise est du kit de démarrage emacs qui faisceaux une version de nxhtml . J'ai essayé d'utiliser php-mode 1.5.0 toujours sans succès. J'ai même essayé d'utiliser la dernière version de nxhtml (2.2), mais toujours la même erreur persistait. Je devais copier-coller toutes les définitions de fonctions manquantes de mewde pour que cela fonctionne avec la santé mentale par rapport . Je dois dire que cela n'ajoute une valeur bien. :)

Le plus drôle, ce problème semble être un problème que Ubuntu Karmic pour moi, j'utilisais la même chose sur les emacs sur openSUSE 11.0 et 11.1 sans aucun problème.

Merci.

Était-ce utile?

La solution

Le problème est que quelque chose essaie d'appeler la 'php-template-if-hook fonction non définie.

Il serait utile si vous avez fourni un lien à l'endroit où vous avez trouvé le php-mode.el que vous utilisez, car il semble y avoir plusieurs .

Le 'php-template-if-hook symbole ne fait pas partie du php-mode.el sur sourceforge, donc soit vous avez une version différente, ou il y a quelque chose d'autre dans votre .emacs qui cause le problème. Il semble que quelque chose déclenche une insertion SIGLE qui conduit à « php-template-if-hook. Note: il ressemble les gens sur un débordement de pile utilisent le php -MODE de sourceforge, donc je vous recommande de passer à celui-là.

Une recherche rapide Google trouve cette php-mode.el , qui définit 'php-template-if-hook être:

(defun php-template-if ()
  "Insert an if statement."
  (interactive)
  (let ((start (point)))
    (insert "if ")
    (insert "(") ; +
    (when (php-template-field "condition" nil t start (point))
      (insert ") {") ; +
      (newline-and-indent)
      (setq start (point-marker))
      (insert "\n}")
      (php-indent-line-2)
      (goto-char start))))

Mais, résoudre votre problème en coupant / coller le code aléatoire des intertubes est pas une bonne solution à long terme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top