#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 приводит к тому же результату.
Как я могу запретить использовать вкладки для выравнивания, при этом все еще используя вкладки для отступов?