Режим PHP для Emacs

У меня проблемы с тем, что мой php-код неправильно отступает ...

Я бы хотел, чтобы мой код выглядел так

if (foo)
{
    print "i am indented";
}

но всегда это выглядит так:

if (foo)
  {
    print "i am not indented correctly";
  }

Я устал искать похожие вещи в Google и попытался добавить следующее в свой .emacs, но это вообще не сработало.

Какие-нибудь мысли?

 (add-hook 'php-mode-hook
          (function (lambda ()
                      ;; GNU style
                      (setq php-indent-level 4
                            php-continued-statement-offset 4
                            php-continued-brace-offset 0
                            php-brace-offset 0
                            php-brace-imaginary-offset 0
                            php-label-offset -4))))
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
5
0
3 590
3

Ответы 3

Настройте переменную c-default-style. Вы либо хотите, чтобы ваш "Другой" режим (или "php", если он доступен) был установлен на "bsd", либо вы можете установить стиль hte во всех режимах на bsd.

Насколько я понимаю, режим PHP построен поверх режима c, поэтому он наследует его настройки.

Попробуйте с этим:

(defun my-build-tab-stop-list (width)
  (let ((num-tab-stops (/ 80 width))
        (counter 1)
        (ls nil))
    (while (<= counter num-tab-stops)
      (setq ls (cons (* width counter) ls))
      (setq counter (1+ counter)))
    (nreverse ls)))

(add-hook 'c-mode-common-hook
      #'(lambda ()
          ;; You an remove this, if you don't want fixed tab-stop-widths
          (set (make-local-variable 'tab-stop-list)
               (my-build-tab-stop-list tab-width))
          (setq c-basic-offset tab-width)
          (c-set-offset 'defun-block-intro tab-width)
          (c-set-offset 'arglist-intro tab-width)
          (c-set-offset 'arglist-close 0)
          (c-set-offset 'defun-close 0)
          (setq abbrev-mode nil)))

Настроить переменную стиля c-default. Добавьте это в свой файл .emacs:

(setq c-default-style "bsd"
      c-basic-offset 4)

Описание bsd style.

Другие вопросы по теме