#+TITLE: IDE Configuration * Intro Packages/configurations that makes emacs more IDE-like, such as: - like popup completions with LSP - error checking on-the-fly - tree-view file explorer - git Integration - tree-sitter based syntax highlighting * Tree Sitter Tree sitter highlighting in emacs.[[https://tree-sitter.github.io/tree-sitter/syntax-highlighting][ Tree-sitter Syntax Highlighting website]] #+begin_src emacs-lisp (use-package tree-sitter :diminish :config (global-tree-sitter-mode)) (use-package tree-sitter-langs :after tree-sitter) #+end_src * Imenu-list Imenu, the tool to get function names in source codes in emacs, displayed and constantly updated in a separate buffer #+begin_src emacs-lisp (use-package imenu-list :commands (imenu-list-minor-mode)) #+end_src * Neotree Tree-based explorer for Emacs #+begin_src emacs-lisp (use-package neotree :hook (neotree-mode . (lambda () (setq mode-line-format nil) (redraw-display))) :custom (neotheme 'arrows) (neo-window-fixed-size t) (neo-smart-open t) (neo-window-width 22) :bind ("M-0" . neotree-toggle)) #+end_src * Magit [[https://magit.vc][Git Interface for Emacs]] #+begin_src emacs-lisp (use-package magit :bind ("C-x g" . magit-status) ("C-x M-g" . magit-dispatch)) #+end_src * Company Mode This package provides Popup autocompletion #+begin_src emacs-lisp (use-package company :diminish :bind (:map company-active-map ("" . company-select-next)) :custom (company-minimum-prefix-length 1) (company-idle-delay 0.0)) #+end_src * RESTClient REST API Client in Emacs #+begin_src emacs-lisp (use-package restclient :commands (restclient-mode)) #+end_src * Eglot A simple package for LSP support #+begin_src emacs-lisp (use-package eglot :config (diminish 'eldoc)) #+end_src * Paredit A (very) recommended package for lisp code editing. #+begin_src emacs-lisp (use-package paredit :hook (emacs-lisp-mode . enable-paredit-mode) (eval-expression-minibuffer-setup . enable-paredit-mode) (ielm-mode . enable-paredit-mode) (lisp-mode . enable-paredit-mode) (lisp-interaction-mode . enable-paredit-mode) (scheme-mode . enable-paredit-mode)) #+end_src