spacemacs "Ошибка спецификации режима файла" - PullRequest
0 голосов
/ 25 апреля 2018

Я использую последнюю версию spacemacs в основной ветке.В моем файле инициализации у меня есть несколько настроек режима cc, включая (как часть c-offsets-alist) "(innamespace. 0)".Я обнаружил, что при открытии файла C ++ я получаю сообщение об ошибке «Ошибка спецификации режима файла: (void-function innamespace)».

Вот полный набор модификаций c-offsets-alist:

(c-offsets-alist            . ((access-label . -3)
                                 (brace-list-close . 0)
                                 (brace-list-entry . 0)
                                 (brace-list-intro . +)
                                 (class-close . 0)
                                 (class-open . 0)
                                 (defun-block-intro . +)
                                 (defun-close . 0)
                                 (defun-open . 0)
                                 (inclass . +)
                                 (label . 0)
                                 (statement . 0)
                                 (statement-cont . *)
                                 (topmost-intro-cont . 0)
                                 (arglist-close . c-lineup-arglist)
                                 (block-open . 0)
                                 (case-label . +)
                                 (func-decl-cont . c-lineup-java-throws)
                                 (inexpr-class . 0)
                                 (inher-cont . c-lineup-java-inher)
                                 (inline-open . 0)
                                 (substatement-open . 0)
                                 (innamespace . 0)
                                 ))

Вот обратный след от отладчика:

Debugger entered--Lisp error: (void-function innamespace)
  (innamespace 0)
  (lambda nil (innamespace 0))()
  run-hooks(change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook)
  apply(run-hooks (change-major-mode-after-body-hook prog-mode-hook c-mode-common-hook c++-mode-hook))
  run-mode-hooks(c++-mode-hook)
  c++-mode()
  set-auto-mode-0(c++-mode nil)
  set-auto-mode()
  normal-mode(t)
  after-find-file(nil t)
  find-file-noselect-1(#<buffer geometry.cpp> "~/sandbox/cpp/geometry.cpp" nil nil "~/sandbox/cpp/geometry.cpp" (85065815 2049))
.
.
.

Интересно, что если я на самом деле в пространстве имен, то cc-mode учитывает мои настройки пространства имен.Я даже закомментировал настройки в моем файле инициализации, и все еще получаю ошибку.Есть идеи о том, как с этим бороться?

1 Ответ

0 голосов
/ 27 апреля 2018

Оказалось, что неудивительно, что проблема была не в том, куда я смотрел.В дополнение к пакету настроек, который включал значения c-offsets-alist, которые я показал в моем первоначальном вопросе, была форма, которую я не помню, добавив:

  (setq c++-mode-hook
        '(lambda ()
           (innamespace 0)))

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

...