emacs-config/init.org.d/60-ide.org

102 lines
2.5 KiB
Org Mode

#+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-langs)
(use-package tree-sitter
:after tree-sitter-langs
:diminish
:config
(global-tree-sitter-mode)
:hook (prog-mode . tree-sitter-hl-mode))
#+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
("<tab>" . 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