indentation – ¿Personalizar la sangría en el modo de archivo MAKE?

Pregunta:

En mis archivos MAKE, prefiero la siguiente sangría para las líneas de continuación:

FILES:=                \
    file1.cpp          \
    file2.cpp          \
    fileYetAnother.cpp

LIBS:=                 \
    libsth1.so         \
    libelsewhere.so

aún así, el modo Makefile lo sangra de la siguiente manera (cuando se le pide que vuelva a sangrar el archivo o la región):

FILES:=            \
file1.cpp          \
file2.cpp          \
fileYetAnother.cpp

LIBS:=             \
libsth1.so         \
libelsewhere.so

¿Es posible configurarlo de alguna manera para usar la variante anterior (= sangrar las líneas de continuación con 4 espacios o tabulación)?

Respuesta:

Sobre la base de la solución de purple_arrows:

(defun my-makefile-indent-line ()
  (save-excursion
(forward-line 0)
(cond
 ;; keep TABs
 ((looking-at "\t")
  t)
 ;; indent continuation lines to 4
 ((and (not (bobp))
       (= (char-before (1- (point))) ?\\))
  (delete-horizontal-space)
  (indent-to 4))
 ;; delete all other leading whitespace
 ((looking-at "\\s-+")
  (replace-match "")))))

(add-hook 'makefile-mode-hook
      (lambda ()
    (setq-local indent-line-function 'my-makefile-indent-line)))

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım