From a053a8e7b9deef0c1a2e081e21410904dadf3737 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Thu, 23 Oct 2014 16:44:23 +0200 Subject: [PATCH] Emacs: Go mode skeletons, compiler, formatter --- .emacs.d/init.el | 1 + .emacs.d/mode-go.el | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 .emacs.d/mode-go.el diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 1f6119b1..baba3aa3 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -85,6 +85,7 @@ Example: to assign some-function to C-i, use (load-external "\\.vert\\'\\|\\.frag\\'\\|\\.glsl\\'" 'glsl-mode nil 'c-mode) (load-external "\\.go\\'" 'go-mode) +(add-hook 'go-mode-hook (lambda () (require 'mode-go))) (load-external "\\.dot\\'" 'graphviz-dot-mode) (add-hook 'graphviz-dot-mode-hook (lambda () (require 'mode-dot))) diff --git a/.emacs.d/mode-go.el b/.emacs.d/mode-go.el new file mode 100644 index 00000000..4136cbcd --- /dev/null +++ b/.emacs.d/mode-go.el @@ -0,0 +1,26 @@ +;;============================================================================== +;; Go +;;============================================================================== + +(add-hook-and-eval + 'go-mode-hook + (lambda () + (add-hook 'before-save-hook #'gofmt-before-save nil t) + (local-set-key (kbd "C-c m") 'go-main) + (set (make-local-variable 'compile-command) (concat "go run " buffer-file-name)))) + +(define-skeleton go-main + "Insert main function with basic includes." + nil + > "package main + +import ( + \"fmt\" +) + +func main () {" \n +> @ _ \n +"}" > \n) + + +(provide 'mode-go)