Emacs From Scratch #8 - Build Your Own IDE with lsp-mode
- Add language server protocol mode - Remove leader key "toggles" since comment was replaced with evil-nerd-commenter
This commit is contained in:
68
README.org
68
README.org
@@ -114,8 +114,8 @@ Setup FiraCode and Cantarell fonts with specified size.
|
||||
:global-prefix "C-SPC")
|
||||
|
||||
(sb/leader-keys
|
||||
"t" '(:ignore t :which-key "toggles")
|
||||
"tc" '(comment-line :which-key "toggle comment")
|
||||
;; "t" '(:ignore t :which-key "toggles")
|
||||
;; "tc" '(comment-line :which-key "toggle comment")
|
||||
"s" '(:ignore s :which-key "settings")))
|
||||
|
||||
(general-define-key
|
||||
@@ -498,6 +498,70 @@ Automatically tangle code blocks in file everytime it is saved.
|
||||
|
||||
* Development
|
||||
|
||||
** Commenting
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package evil-nerd-commenter
|
||||
:bind ("M-/" . evilnc-comment-or-uncomment-lines))
|
||||
#+end_src
|
||||
|
||||
** Languages
|
||||
|
||||
*** Language Servers
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(defun sb/lsp-mode-setup ()
|
||||
(setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
|
||||
(lsp-headerline-breadcrumb-mode))
|
||||
|
||||
(use-package lsp-mode
|
||||
:commands (lsp lsp-deferred)
|
||||
:hook (lsp-mode . sb/lsp-mode-setup)
|
||||
:init
|
||||
(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l'
|
||||
:config
|
||||
(lsp-enable-which-key-integration t))
|
||||
|
||||
(use-package lsp-ui
|
||||
:hook (lsp-mode . lsp-ui-mode)
|
||||
:custom
|
||||
(lsp-ui-doc-position 'bottom))
|
||||
|
||||
(use-package lsp-treemacs
|
||||
:after lsp)
|
||||
|
||||
(use-package lsp-ivy)
|
||||
#+end_src
|
||||
|
||||
# *** TypeScript
|
||||
|
||||
# #+begin_src emacs-lisp
|
||||
# (use-package typescript-mode
|
||||
# :mode "\\.tx\\'"
|
||||
# :hook (typescript-mode .lsp-deferred)
|
||||
# :config
|
||||
# (setq typescript-indent-level 2))
|
||||
# #+end_src
|
||||
|
||||
*** Company Mode
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package company
|
||||
:after lsp-mode
|
||||
:hook (lsp-mode . company-mode)
|
||||
:bind
|
||||
(:map company-active-map
|
||||
("<tab>" . company-complete-selection))
|
||||
(:map lsp-mode-map
|
||||
("<tab>" . company-indent-or-complete-common))
|
||||
:custom
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.0))
|
||||
|
||||
(use-package company-box
|
||||
:hook (company-mode . company-box-mode))
|
||||
#+end_src
|
||||
|
||||
** Projectile
|
||||
#+begin_src emacs-lisp
|
||||
;; Projectile
|
||||
|
44
init.el
44
init.el
@@ -62,8 +62,8 @@
|
||||
:global-prefix "C-SPC")
|
||||
|
||||
(sb/leader-keys
|
||||
"t" '(:ignore t :which-key "toggles")
|
||||
"tc" '(comment-line :which-key "toggle comment")
|
||||
;; "t" '(:ignore t :which-key "toggles")
|
||||
;; "tc" '(comment-line :which-key "toggle comment")
|
||||
"s" '(:ignore s :which-key "settings")))
|
||||
|
||||
(general-define-key
|
||||
@@ -374,6 +374,46 @@
|
||||
|
||||
(add-hook 'org-mode-hook (lambda () (add-hook 'after-save-hook #'sb/org-babel-tangle-config)))
|
||||
|
||||
(use-package evil-nerd-commenter
|
||||
:bind ("M-/" . evilnc-comment-or-uncomment-lines))
|
||||
|
||||
(defun sb/lsp-mode-setup ()
|
||||
(setq lsp-headerline-breadcrumb-segments '(path-up-to-project file symbols))
|
||||
(lsp-headerline-breadcrumb-mode))
|
||||
|
||||
(use-package lsp-mode
|
||||
:commands (lsp lsp-deferred)
|
||||
:hook (lsp-mode . sb/lsp-mode-setup)
|
||||
:init
|
||||
(setq lsp-keymap-prefix "C-c l") ;; Or 'C-l', 's-l'
|
||||
:config
|
||||
(lsp-enable-which-key-integration t))
|
||||
|
||||
(use-package lsp-ui
|
||||
:hook (lsp-mode . lsp-ui-mode)
|
||||
:custom
|
||||
(lsp-ui-doc-position 'bottom))
|
||||
|
||||
(use-package lsp-treemacs
|
||||
:after lsp)
|
||||
|
||||
(use-package lsp-ivy)
|
||||
|
||||
(use-package company
|
||||
:after lsp-mode
|
||||
:hook (lsp-mode . company-mode)
|
||||
:bind
|
||||
(:map company-active-map
|
||||
("<tab>" . company-complete-selection))
|
||||
(:map lsp-mode-map
|
||||
("<tab>" . company-indent-or-complete-common))
|
||||
:custom
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.0))
|
||||
|
||||
(use-package company-box
|
||||
:hook (company-mode . company-box-mode))
|
||||
|
||||
;; Projectile
|
||||
(use-package projectile
|
||||
:diminish projectile-mode
|
||||
|
Reference in New Issue
Block a user