Mercurial > dotfiles
view .elisp/settings/80.go.el @ 325:64e73453e43f
xmonad: Pull apart custom layout into something readable
This change doesn't affect any behavior, but it does document the custom
layout by naming function parameters. Hopefully, this will make things
easier to fix the next time the XMonad developers break us.
author | Lucas Bergman <lucas@bergmans.us> |
---|---|
date | Tue, 11 Mar 2014 12:49:05 -0500 |
parents | aa5afa13e12c |
children | ec41fb19c4c8 |
line wrap: on
line source
;; completions for go (defun af-go-hook () ;; enable tabs (setq tab-width 2) (setq indent-tabs-mode t) (make-variable-buffer-local 'whitespace-style) (setq whitespace-style '(trailing lines-tail indentation trailing empty)) ) (defun af-get-go-elisp-location () (let* ((gobinary (shell-command-to-string "which go")) (gobin (substring (let ((x (file-name-directory gobinary))) (if x x "z")) 0 -1)) (goroot (file-name-directory gobin))) (if goroot (concat goroot "misc/emacs") ""))) (defun af-get-gocode-elisp-location () (let* ((binary (shell-command-to-string "which gocode")) (bin (substring (let ((x (file-name-directory binary))) (if x x "z")) 0 -1)) (basedir (file-name-directory bin))) (if basedir (concat basedir "src/github.com/nsf/gocode/emacs-company/") ""))) (let* ((goloc (af-get-go-elisp-location)) (goel (concat goloc "/go-mode.el"))) (if (file-exists-p goel) (progn (message "Go is installed, loading go-mode") (add-to-list 'load-path goloc) (require 'go-mode) (add-hook 'go-mode-hook 'af-go-hook) (add-hook 'go-mode-hook 'go-eldoc-setup) (let* ((loc (af-get-gocode-elisp-location)) (el (concat loc "/company-go.el"))) (if (file-exists-p el) (progn (message "Found gocode, loading company-mode support...") (add-to-list 'load-path loc) (require 'company-go)) (message "gocode missing, skipping company-mode support.")))) (message "Go appears to not be installed, skipping Go setup.")))