 
 (use-package csharp-mode
   :init
-  (add-hook 'csharp-mode-hook #'omnisharp-mode)
+  ;; (add-hook 'csharp-mode-hook #'omnisharp-mode)
   (add-hook 'csharp-mode-hook #'my-csharp-mode-setup))
 
+(use-package csproj-mode
+  :init
+  (add-hook 'csproj-mode-hook #'omnisharp-mode))
+
+(use-package go-mode
+  :init
+  (defun my-go-mode-configure ()
+    "Configure buffer for writing in golang."
+    (setq indent-tabs-mode t
+          tab-width 4))
+  (add-hook 'go-mode-hook #'my-go-mode-configure)
+  :config
+  (setq godef-command "~/go/bin/godef"))
+
 (use-package groovy-mode)
+
+(use-package java-snippets)
+
+(use-package jar-manifest-mode)
 
 (use-package js2-mode
   :mode "\\.js\\'")
 
+(use-package lsp-mode
+  :hook
+  ((go-mode . lsp-deferred)
+   (lsp-mode . lsp-enable-which-key-integration))
+  :commands
+  (lsp lsp-deferred)
+  :config
+  (setq lsp-modeline-diagnostic-scope :project))
+
+(use-package lsp-ui
+  :commands lsp-ui-mode)
+
+(use-package lua-mode)
+
 (use-package python
-  :mode ("\\.py\\'" . python-mode))
-
-(use-package sphinx-doc
-  :config
-  (add-hook 'python-mode-hook #'sphinx-doc-mode))
-
-(use-package jedi
-  :config
-  (progn
-    ;; need to pip install epc and jedi
-    (add-hook 'python-mode-hook 'jedi:setup)
-    (setq jedi:complete-on-dot t)))
-;; TODO: in evil's insert state, map the normal autocomplete to jedi
-
-(use-package anaconda-mode
-  :config
-  (add-hook 'python-mode-hook #'anaconda-mode))
-
-(use-package java-snippets)
-
-(use-package jtreg
-  :load-path "~/devel/emacs-jtreg/"
-  :ensure nil
-  :config
-  (setq jtreg-dir "~/local/jtreg/lib/"))
-
-(use-package jar-manifest-mode)
-
-(use-package lua-mode)
+  :mode ("\\.py\\'" . python-mode)
+  :init
+  (use-package pipenv))
 
 (use-package restclient
   :commands restclient-mode

(if (fboundp 'tooltip-mode) (tooltip-mode 0))
(setq
 inhibit-splash-screen t)

(setq org-directory (expand-file-name "~/notebook"))
(setq my-default-notes-file (concat org-directory "/daily-log.org"))
;; (setq initial-buffer-choice my-default-notes-file)

;; Some nice themes that I like
(use-package challenger-deep-theme)

      (ert t)
      (select-window (get-buffer-window original-buffer)))))

(defun my-csharp-mode-setup ()
  "Configure csharp-mode."
  (setq indent-tabs-mode nil)
