From 6c9dfd0a57362d995cc12412cecacb38efb53451 Mon Sep 17 00:00:00 2001 From: amirrezaask Date: Sun, 23 Feb 2020 09:04:35 +0330 Subject: [PATCH] add first draft of golang extention for fg42 --- lib/extensions/go.el | 24 ++++++++++++++++++++++++ lib/extensions/go/init.el | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 lib/extensions/go.el create mode 100644 lib/extensions/go/init.el diff --git a/lib/extensions/go.el b/lib/extensions/go.el new file mode 100644 index 0000000..77f0842 --- /dev/null +++ b/lib/extensions/go.el @@ -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 diff --git a/lib/extensions/go/init.el b/lib/extensions/go/init.el new file mode 100644 index 0000000..bb64b94 --- /dev/null +++ b/lib/extensions/go/init.el @@ -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.