Как настроить и работать с Go в Emacs?
Полное руководство по настройке Go и работе с проектами в Emacs
Categories:
Настройка Emacs для работы с Go включает установку необходимых пакетов и настройку среды разработки. Вот пошаговая инструкция:
1. Установите go-mode
(основной режим для Go)
Добавьте в ваш ~/.emacs
или ~/.emacs.d/init.el
:
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
;; Установка go-mode (если не установлен)
(unless (package-installed-p 'go-mode)
(package-refresh-contents)
(package-install 'go-mode))
2. Установите lsp-mode
(Language Server Protocol)
Для автодополнения, навигации и рефакторинга:
(unless (package-installed-p 'lsp-mode)
(package-install 'lsp-mode))
(require 'lsp-mode)
(add-hook 'go-mode-hook #'lsp-deferred) ;; Автоматический запуск LSP для Go
3. Установите lsp-ui
(дополнения для LSP)
(unless (package-installed-p 'lsp-ui)
(package-install 'lsp-ui))
(require 'lsp-ui)
(setq lsp-ui-doc-enable t) ;; Включить документацию при наведении
(setq lsp-ui-sideline-enable t) ;; Показывать информацию на полях
4. Установите company
(автодополнение)
(unless (package-installed-p 'company)
(package-install 'company))
(require 'company)
(add-hook 'go-mode-hook 'company-mode)
(setq company-minimum-prefix-length 1)
(setq company-idle-delay 0.1)
5. Установите flycheck
(проверка синтаксиса)
(unless (package-installed-p 'flycheck)
(package-install 'flycheck))
(require 'flycheck)
(add-hook 'go-mode-hook 'flycheck-mode)
6. Настройка gofmt
(форматирование кода)
Добавьте в go-mode-hook
:
(add-hook 'go-mode-hook
(lambda ()
(add-hook 'before-save-hook 'gofmt-before-save nil t)))
7. Установите goimports
(автоматическое добавление импортов)
Убедитесь, что goimports
установлен:
go install golang.org/x/tools/cmd/goimports@latest
Затем настройте в Emacs:
(setq gofmt-command "goimports")
8. Дополнительные улучшения (опционально)
dap-mode
(отладка):(unless (package-installed-p 'dap-mode) (package-install 'dap-mode)) (require 'dap-go) ;; Поддержка Go
yasnippet
(шаблоны кода):(unless (package-installed-p 'yasnippet) (package-install 'yasnippet)) (yas-global-mode 1)
9. Проверьте настройки
Перезапустите Emacs и откройте .go
файл. Должны работать:
- Автодополнение (
company
) - Проверка ошибок (
flycheck
) - Форматирование при сохранении (
gofmt/goimports
) - Навигация по коду (
lsp-mode
)
Если LSP не работает, убедитесь, что у вас установлен Go Language Server (gopls
):
go install golang.org/x/tools/gopls@latest
Готово! Теперь Emacs настроен для комфортной работы с Go. 🚀