add first draft of golang extention for fg42

This commit is contained in:
amirrezaask 2020-02-23 09:04:35 +03:30
parent 08de732bdb
commit 6c9dfd0a57
2 changed files with 47 additions and 0 deletions

24
lib/extensions/go.el Normal file
View File

@ -0,0 +1,24 @@
;;; GoExtention --- Enable Golang support in FG42
;;; Commentary:
;;; Code:
(require 'fpkg)
(require 'fg42/extension)
(require 'extensions/go-initialize)
;; dependencies
(depends-on 'go-mode)
(depends-on 'go-add-tags)
(depends-on 'go-stacktracer)
(depends-on 'go-eldoc)
(depends-on 'gotest)
(extension go
:version 0.0.1
:on-initialize extensions/go-initialize
:docs "lib/extensions/go/readme.org")
;;; go.el ends here

23
lib/extensions/go/init.el Normal file
View File

@ -0,0 +1,23 @@
;;; go-init --- The entry point for golang extension
;;; Commentary:
;;; Code:
(defun fg42-go-hook ()
"""Setup emacs hooks and turn necessary modes on."""
(lsp)
(flymake-mode-on)
(yas-minor-mode-on)
(add-hook 'before-save-hook #'lsp-format-buffer t t)
(add-hook 'before-save-hook #'lsp-organize-imports t t)
(add-hook 'go-mode-hook 'go-eldoc-setup)
(local-set-key (kbd "M-.") #'godef-jump)
(local-set-key (kbd "M-*") 'pop-tag-mark))
(defun extensions/go-initialize ()
"""Initialize Golang extension."""
(add-hook 'go-mode-hook 'fg42-go-hook))
(provide 'extensions/go/init)
;;; init ends here.