 	(setq lsp-eldoc-enable-hover t)
 	(eldoc-mode 1)))
     )
-  (add-hook 'python-mode-hook
+  (add-hook 'lsp-mode-hook
 	    (lambda ()
 	      (local-set-key (kbd "C-c l v")
 			     'my-lsp-eldoc-toggle-hover)))
+
+  ;; Display variable info
+  ;; Use [C-c l i] to do so
+  (defun my-lsp-variable-info-message (string)
+    (message "%s %s"
+	     (propertize (all-the-icons-faicon "info")
+			 'face `(:family ,(all-the-icons-faicon-family)
+					 :height 1.0
+					 :background nil
+					 :foreground "yellow")
+			 'display '(raise -0.05))
+	     (propertize string
+			 'face '(:background nil
+					     :foreground "yellow"))))
+  (defun my-lsp-display-variable-info ()
+    (interactive)
+    (if (not (looking-at "[[:space:]\n]"))
+      (when (lsp--capability :hoverProvider)
+        (lsp-request-async
+         "textDocument/hover"
+         (lsp--text-document-position-params)
+         (-lambda ((hover &as &Hover? :range? :contents))
+           (when hover
+	     (my-lsp-variable-info-message
+	      (and contents
+		   (lsp--render-on-hover-content
+		    contents
+		    lsp-eldoc-render-all)))
+	     ))
+         :error-handler #'ignore
+         :mode 'tick
+         :cancel-token :eldoc-hover)))
+    )
+  (add-hook 'lsp-mode-hook (lambda ()
+			     (define-key lsp-mode-map (kbd "C-c l i")
+			       'my-lsp-display-variable-info)))
 
   )
 

  ;; `M-x lsp-workspace-restart`
  ;;
  ;; Useful tools:
  ;;  =M-x lsp-rename= : rename all instances of a variable.
  ;;  =C-c l v= : toggle variable info on hover from elpy.
  :ensure t
  :init
  (setq lsp-keymap-prefix "C-c l")

		       ;; Garbage-collect after 30 seconds of idleness
		       (garbage-collect)
		       (message "%s Routine %ds garbage collection"
				(propertize (all-the-icons-faicon "trash-o")
					    'face `(:family ,(all-the-icons-faicon-family)
							    :height 1.0
							    :background nil)
					    'display '(raise -0.05))
				my-gc-collect-interval)))
(setq read-process-output-max (* 1024 1024 10)) ;; 10mb

;; Remove warnings like:
