   (setenv "GOPATH" (shell-command-to-string "$SHELL --login -i -c 'echo -n $GOPATH'")) ; set the $GOPATH
   (setq gofmt-command "goimports")
   (add-hook 'go-mode-hook #'go-awesome-mode-hook))
-
 
 (defun go-awesome-mode-hook ()
   "Run all of the configuration settings for Golang when this hook is called."
   (setq tab-width 4)
   (setq indent-tabs-mode 1)
-  ; Call Gofmt before saving
+										; Call Gofmt before saving
   (add-hook 'before-save-hook 'gofmt-before-save)
-  ; Godef jump key binding
+										; Godef jump key binding
   (local-set-key (kbd "C-g j") 'godef-jump))
 
-;; Go Autocomplete
-(use-package go-autocomplete
-  :load-path "go")
+;; Go Company
+(use-package company-go
+  :ensure t
+  :init
+  (with-eval-after-load 'company
+    (add-to-list 'company-backends 'company-go)))
+
 
 ;; Flycheck
 (use-package flycheck

  "Make 'ansi-term' better with some custom code."
  (define-key term-raw-map (kbd "s-v") #'ansi-term-paste))

;; Disable bell completely
(setq ring-bell-function 'ignore)
;;; init.el ends here

(defun set-exec-path-from-env()
  "Set the 'exec-path' variable to include the $PATH from the shell when in windowed mode."
  (let ((path-from-shell (replace-regexp-in-string
						  "[ \t\n]*$"
						  ""
						  (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))
    (setenv "PATH" path-from-shell)
    (setq exec-path (split-string path-from-shell path-separator))))

