Смарт-вкладки в режиме Emacs VHDL

#emacs #vhdl #code-formatting

Вопрос:

Я использую режим VHDL в Emacs, в основном для форматирования исходного кода. Однако функция интеллектуальных вкладок показывает неожиданное поведение; она вставляет вкладки для выравнивания.

Файл конфигурации emacs: (две строки в конце добавлены в соответствии с https://www.emacswiki.org/emacs/SmartTabs#VHDL)

 (require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)
(custom-set-variables
 '(package-selected-packages (quote (smart-tabs-mode evil)))
 '(vhdl-basic-offset 4)
 '(vhdl-indent-tabs-mode t)
 '(vhdl-standard (quote (8 nil))))
(custom-set-faces
 )
(require 'evil)
(evil-mode 1)
(smart-tabs-advice vhdl-indent-line vhdl-basic-offset)
(setq vhdl-indent-tabs-mode t)
 

Форматированный вывод: (обратите внимание, что stackoverflow преобразует вкладки в пробелы, и обратите внимание, как «:» не выровнены, поскольку stackoverflow, по-видимому, использует ширину вкладки 4)

 library ieee;
use ieee.numeric_std.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity test is
    port (
    clk        : in     std_logic;
    rst        : in     std_logic;
    verylongsignalname : buffer std_logic;
    s          : buffer std_logic);
end entity test;
 

Запуск буфера vhdl-beautify в пакетном режиме с-Q приводит к тому же результату.

Как я могу запретить использовать вкладки для выравнивания, при этом все еще используя вкладки для отступов?