Установка начального уровня отступа для PHP в Emacs? - PullRequest
5 голосов
/ 14 июля 2009

Я обычно кодирую свой PHP с одним уровнем отступа после начального <?php, но у меня возникают проблемы с поиском настройки для этого в Emacs с php-mode.

Для ясности, вот что делает Emacs:

<?php
echo "Hello.";

if (something)
    do_something();

А вот как я обычно кодирую:

<?php
    echo "Hello.";

    if (something)
        do_something();

Emacs версии 23 (прямо из CVS), php-mode 1.5.0.

Ответы [ 3 ]

2 голосов
/ 16 июля 2009

Нашел решение, думаю:

(c-set-offset 'topmost-intro 4)
(c-set-offset 'cpp-macro -4)

Кажется, работает. topmost-intro устанавливает все, и, насколько я могу судить, cpp-macro устанавливает только теги <?php.

Спасибо Чизо за подсказку, которая привела меня к ответу.

1 голос
/ 15 июля 2009

У меня нет php-режима, но в c-режимах может помочь M-x c-set-offset. - это позволит вам настроить смещение для синтаксического элемента и показать, какой элемент был использован для текущей строки.

0 голосов
/ 14 июля 2009

php-mode происходит от c-mode, так что я думаю, все, что вам нужно, это:

(setq-default indent-tabs-mode nil)
(setq standard-indent 2)
(setq default-tab-width 2)
(add-hook 'c-mode-common-hook
  #'(lambda ()
    (setq c-basic-offset tab-width)))

Если это не то, что вы имели в виду, возможно, вы ищете tab-stop-list?

...