Escribo mis proyectos en FreePascal y uso
opascal-mode
para escribirlo. Estoy teniendo el
problema de que este modo cree que '\'
no es una
cadena completa y, por lo tanto, todo el código después de que esté
resaltado como una cadena. ¿Cómo puedo cambiar el modo
opascal (o agregar un gancho) en el que no intente analizar la
barra invertida como un carácter de escape? En FreePascal,
las cadenas no admiten la barra invertida como un personaje de
escape.
Estoy usando GNU Emacs 24.5.1 y este es un código de ejemplo que
cuando se ejecuta en modo opascal, resalta todo lo que aparece
después del '\'
de manera incorrecta:
// syntax_highlight.dpr
{$mode objfpc}{$H+}
program my_program;
uses Classes;
var newVal : char;
begin
newVal := '\';//syntax highlight breaks here!
if newVal = '''' then begin
writeln('single quote');
end else if newVal = '\' then begin
writeln('backslash');
end;
end.
He intentado perder el tiempo con
modify-syntax-entry
, pero nada de lo que intenté
funcionó.
EDITAR: esta es la configuración fija en ~/.emacs
después de haber implementado la corrección de @ JeanPierre
;; associate pascal files as opascal-mode
(add-to-list 'auto-mode-alist '("\\.pas$" . opascal-mode))
(let* ((pascal-files '(".pas" ".pp" ".inc" ".lpr" ".dpr"))
(pascal-regexp (concat (regexp-opt pascal-files t) "\\'")))
(add-to-list 'auto-mode-alist (cons pascal-regexp 'opascal-mode)))
;; don't escape backslashes in pascal
(add-hook 'opascal-mode-hook
(modify-syntax-entry ?\\ "."))