diff --git a/README.org b/README.org index 9a0c0dfa..cb4a4183 100644 --- a/README.org +++ b/README.org @@ -15,6 +15,7 @@ - [[#better-ui][Better UI]] - [[#completion][Completion]] - [[#yasnippet][YASnippet]] + - [[#projectile][Projectile]] - [[#navigation][Navigation]] - [[#window-management][Window Management]] - [[#help][Help]] @@ -352,6 +353,7 @@ This evil-collection package includes a lot of other evil based things. "of" '(:ignore t :which-key "elfeed") "h" '(:ignore t :which-key "help") "n" '(:ignore t :which-key "notes") + "l" '(:ignore t :which-key "lsp") "sp" '(:ignore t :which-key "passwords") "bs" '(consult-buffer :which-key "buffer search") "bd" '(kill-this-buffer :which-key "kill buffer") @@ -627,17 +629,21 @@ Marginalia makes for some great decoration to our minibuffer completion items. W *** Company #+begin_src emacs-lisp (use-package company - :defer 1 :config (global-company-mode +1) - (setq company-dabbrev-other-buffers t - company-minimum-prefix-length 1) + :custom + (company-dabbrev-other-buffers t) + (company-minimum-prefix-length 1) + (company-idle-delay 0.2) :general - (general-define-key - :states 'normal - :keymaps '(override company-search-map) - "TAB" 'company-complete-selection) - ) + (general-def '(normal insert) company-active-map + "TAB" 'company-complete-selection + "RET" 'company-complete-selection) + (general-def '(normal insert) lsp-mode-map + "TAB" 'company-indent-or-complete-common)) + +;; (use-package company-box +;; :hook (company-mode . company-box-mode)) #+end_src #+begin_src emacs-lisp @@ -654,6 +660,12 @@ YASnippet is a templating system. It's powerful. (yas-global-mode 1)) #+end_src +** Projectile +I'm going to use projectile to keep my projects inline. +#+begin_src emacs-lisp +(use-package projectile) +#+end_src + ** Navigation *** Avy Avy provides a lot of functions to search through the current buffer. Most of the time I use evil or consult functions to find what I'm looking for, but avy provides a lot of small movements that are more useful for visible movements. @@ -763,11 +775,22 @@ Since I use the Awesome WM I thought it'd be good to have lua around. It's also LSP is useful... #+begin_src emacs-lisp (use-package lsp-mode + :commands (lsp lsp-deferred) + :init + (setq lsp-keymap-prefix "C-c l") :config (setq lsp-lens-enable t - lsp-signature-auto-activate nil)) + lsp-signature-auto-activate nil + read-process-output-max (* 1024 1024)) + (lsp-enable-which-key-integration t)) -(use-package lsp-ui) +(use-package lsp-ui + :hook (lsp-mode . lsp-ui-mode) + :custom + (lsp-ui-doc-position 'bottom)) + +(use-package lsp-treemacs + :after lsp) #+end_src *** Fennel @@ -874,9 +897,17 @@ I may get into flutter development over using felgo..... but i'm not happy about #+begin_src emacs-lisp (use-package dart-mode :mode ("\\.dart\\'" . dart-mode) - :config (add-hook 'dart-mode 'lsp)) + :hook (dart-mode . lsp-deferred) + :general + (general-def 'normal dart-mode-map + "C-c r" 'lsp-dart-dap-flutter-hot-reload + "C-c R" 'lsp-dart-dap-flutter-hot-restart)) (use-package lsp-dart) +(use-package flutter + :after dart) +(use-package hover + :after dart) #+end_src Let's also add the android-sdk tools to emacs' path. diff --git a/init.el b/init.el index d9c3dde2..e89b2c56 100644 --- a/init.el +++ b/init.el @@ -217,6 +217,7 @@ "of" '(:ignore t :which-key "elfeed") "h" '(:ignore t :which-key "help") "n" '(:ignore t :which-key "notes") + "l" '(:ignore t :which-key "lsp") "sp" '(:ignore t :which-key "passwords") "bs" '(consult-buffer :which-key "buffer search") "bd" '(kill-this-buffer :which-key "kill buffer") @@ -361,17 +362,21 @@ vertically." :after selectrum) (use-package company - :defer 1 :config (global-company-mode +1) - (setq company-dabbrev-other-buffers t - company-minimum-prefix-length 1) + :custom + (company-dabbrev-other-buffers t) + (company-minimum-prefix-length 1) + (company-idle-delay 0.2) :general - (general-define-key - :states 'normal - :keymaps '(override company-search-map) - "TAB" 'company-complete-selection) - ) + (general-def '(normal insert) company-active-map + "TAB" 'company-complete-selection + "RET" 'company-complete-selection) + (general-def '(normal insert) lsp-mode-map + "TAB" 'company-indent-or-complete-common)) + +;; (use-package company-box +;; :hook (company-mode . company-box-mode)) (use-package company-dict :after company) @@ -381,6 +386,8 @@ vertically." (setq yas-snippet-dirs (list (expand-file-name "yasnippets/" user-emacs-directory))) (yas-global-mode 1)) +(use-package projectile) + (use-package avy :after evil) @@ -454,11 +461,22 @@ vertically." :mode ("\\.lua\\'" . lua-mode)) (use-package lsp-mode + :commands (lsp lsp-deferred) + :init + (setq lsp-keymap-prefix "C-c l") :config (setq lsp-lens-enable t - lsp-signature-auto-activate nil)) + lsp-signature-auto-activate nil + read-process-output-max (* 1024 1024)) + (lsp-enable-which-key-integration t)) -(use-package lsp-ui) +(use-package lsp-ui + :hook (lsp-mode . lsp-ui-mode) + :custom + (lsp-ui-doc-position 'bottom)) + +(use-package lsp-treemacs + :after lsp) (use-package fennel-mode :mode ("\\.fnl\\'" . fennel-mode)) @@ -516,9 +534,17 @@ vertically." (use-package dart-mode :mode ("\\.dart\\'" . dart-mode) - :config (add-hook 'dart-mode 'lsp)) + :hook (dart-mode . lsp-deferred) + :general + (general-def 'normal dart-mode-map + "C-c r" 'lsp-dart-dap-flutter-hot-reload + "C-c R" 'lsp-dart-dap-flutter-hot-restart)) (use-package lsp-dart) +(use-package flutter + :after dart) +(use-package hover + :after dart) (add-to-list 'exec-path "/opt/android-sdk/cmdline-tools/latest/bin")