emacs php-mode cc-mode

Hacer que el modo php(y otros modos derivados del modo cc) sea compatible con Emacs 23



php-mode cc-mode (2)

Funciona bien con http://mewde.googlecode.com/files/php-mode-new.el .

Estoy usando Emacs 23 y php-mode.el 1.5.0. Cuando tengo esto en mi .emacs :

(require ''php-mode)

Recibo este mensaje de error cuando Emacs comienza:

Advertencia (inicialización): se produjo un error al cargar `/Users/kdj/.emacs '':

error: `c-lang-defconst ''debe usarse en un archivo

Para garantizar un funcionamiento normal, debe investigar y eliminar la causa del error en su archivo de inicialización. Inicie Emacs con la opción `--debug-init ''para ver un seguimiento completo de errores.

Si evalúo (require ''php-mode) después de que se inicie Emacs, no recibo ningún mensaje de error.

Encontré una entrada de blog que indica que este problema es específico de Emacs 23 (es decir, no hay ningún error con Emacs 22.x), pero no da ninguna solución.

No sé si esto importa, pero estoy usando Mac OS X, y construí Emacs a partir de las fuentes CVS actuales, usando ./configure --with-ns .

¿Qué está pasando aquí, y / o cómo puedo solucionarlo?


Me encontré con el mismo problema al intentar poner en marcha el modo csharp. Finalmente encontré la solución al profundizar en el archivo real de Emacs Lisp para csharp-mode:

;; This code doesn''t seem to work when you compile it, then ;; load/require in the Emacs file. You will get an error (error ;; "`c-lang-defconst'' must be used in a file") which happens because ;; cc-mode doesn''t think it is in a buffer while loading directly ;; from the init. However, if you call it based on a file extension, ;; it works properly. Interestingly enough, this doesn''t happen if ;; you don''t byte-compile cc-mode.

Por lo tanto, la solución rápida y sucia para poner en tu .emacs es cargar automáticamente en la extensión y no poner (require ''php-mode) o (load "php-mode") allí. Sin más preámbulos,

(autoload ''php-mode "php-mode" "Major mode for editing php code." t) (add-to-list ''auto-mode-alist ''("//.php$" . php-mode)) (add-to-list ''auto-mode-alist ''("//.inc$" . php-mode))

¡Espero que esto ayude! Ahora solo necesito hacer funcionar el modo de cambio de modo PHP / HTML. Deséame suerte.