@ninjathrasher

Как настроить проверку фатальных ошибок PHP в Emacs?

Всем привет. Переезжаю на с IDE на Emacs. Настраиваю по-тихоньку его под разработку на PHP. Дошел до проверки кода на ошибки. Выяснил, что лучшее решение - это flycheck. Подскажите, пожалуйста, как посредством flycheck проверять код на фатальные ошибки(неопределенные методы, неопределенные переменные)? Заранее спасибо.
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 1
dunmaksim
@dunmaksim
Технический писатель
Flycheck полагается на внешние утилиты при проверке синтаксиса и статическом анализе.

Решение вашей задачи состоит из нескольких этапов.
1. Установка php-mode.
2. Установка flycheck.
3. Установка внешних утилит для проверки синтаксиса и статического анализа PHP-кода.

1. Установка php-mode.

Я использую для этого straight.el. Вы можете использовать любой другой менеджер пакетов. Настройки, описанные ниже, почти без изменений будут работать и у вас.

(straight-use-package 'php-mode)
(defun setup-php-mode ()
  "Settings for 'php-mode'"
  (interactive)

  (flycheck-mode 1))
(add-to-list 'auto-mode-alist '("\\.php\\'" . php-mode))
(add-hook 'php-mode-hook #'setup-php-mode)


2. Установка Flycheck.

;; FLYCHECK
(straight-use-package `flycheck)
(defun setup-flycheck-mode ()
  "Settings for 'flycheck-mode'."
  (interactive)
  (defvar flycheck-check-syntax-automatically '(mode-enabled save))
  (defvar flycheck-indication-mode 'left-margin)
  (setq
   flycheck-check-syntax-automatically '(mode-enabled save)
   flycheck-indication-mode 'left-margin))
(add-hook 'flycheck-mode-hook #'setup-flycheck-mode)


3. Перезапустите EMACS, чтобы он подхватил новые настройки. Откройте любой PHP-файл и вызовите команду flycheck-verify-setup. В новом буфере будет выведена информация о том, на какие внешние средства полагается Flycheck. При необходимости установите их с помощью пакетного менеджера своей ОС. Внесите изменения в файл и посмотрите, какие предупреждения и ошибки выдаст Flycheck.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы