102 lines
2.5 KiB
Org Mode
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
|