more proper tree-sitter support, better older version compatibility, general cleanup
This commit is contained in:
parent
008ce842e7
commit
a7768782fe
|
|
@ -12,8 +12,9 @@ Functions needed at the start of the configuration
|
|||
* User Emacs Directories
|
||||
set the directory for emacs and it's apps to put stuff.
|
||||
#+begin_src emacs-lisp
|
||||
(setq user-emacs-directory
|
||||
(expand-file-name "emacs" (safe-getenv "XDG_DATA_HOME" "~/.local/share")))
|
||||
(if (version< emacs-version "28")
|
||||
(setq user-emacs-directory
|
||||
(expand-file-name "emacs" (safe-getenv "XDG_DATA_HOME" "~/.local/share"))))
|
||||
#+end_src
|
||||
|
||||
* Backup Directory
|
||||
|
|
|
|||
|
|
@ -10,10 +10,10 @@
|
|||
:strike-through nil :overline nil :underline nil
|
||||
:slant normal :weight normal
|
||||
:height 100 :width normal
|
||||
:foundry "CTDB" :family "Source Code Pro"))))
|
||||
'(fixed-pitch ((t (:family "Source Code Pro"))))
|
||||
'(fixed-pitch-serif ((t (:family "Source Code Pro"))))
|
||||
'(variable-pitch ((t (:inherit default :weight regular :family "Cantarell")))))
|
||||
:foundry "CTDB" :family "Roboto Mono"))))
|
||||
'(fixed-pitch ((t (:family "Roboto Mono"))))
|
||||
'(fixed-pitch-serif ((t (:family "Roboto Mono"))))
|
||||
'(variable-pitch ((t (:inherit default :weight regular :family "Inter")))))
|
||||
#+end_src
|
||||
|
||||
** Chinese Font
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ sets the tab size 5 spaces
|
|||
* Theme
|
||||
Load theme (that is built-in)
|
||||
#+begin_src emacs-lisp
|
||||
(load-theme 'modus-operandi t)
|
||||
(load-theme 'modus-vivendi t)
|
||||
;; (use-package solarized-theme
|
||||
;; :config
|
||||
;; (load-theme 'solarized-selenized-black))
|
||||
|
|
|
|||
|
|
@ -13,25 +13,38 @@ Tree sitter highlighting in emacs.[[https://tree-sitter.github.io/tree-sitter/sy
|
|||
Tree-sitter Syntax Highlighting website]]
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package tree-sitter-langs)
|
||||
(use-package tree-sitter
|
||||
:after tree-sitter-langs
|
||||
:diminish
|
||||
(when (version< emacs-version "29")
|
||||
(use-package tree-sitter-langs)
|
||||
(use-package tree-sitter
|
||||
:after tree-sitter-langs
|
||||
:diminish
|
||||
:config
|
||||
(global-tree-sitter-mode)))
|
||||
|
||||
(add-hook 'prog-mode 'tree-sitter-hl-mode )
|
||||
|
||||
#+end_src
|
||||
|
||||
** treesit-auto
|
||||
automatically install treesitter language
|
||||
#+begin_src emacs-lisp
|
||||
(use-package treesit-auto
|
||||
:custom
|
||||
(treesit-auto-install 'prompt)
|
||||
:config
|
||||
(global-tree-sitter-mode)
|
||||
:hook (prog-mode . tree-sitter-hl-mode))
|
||||
(treesit-auto-add-to-auto-mode-alist 'all)
|
||||
(global-treesit-auto-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))
|
||||
(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 ()
|
||||
|
|
@ -49,7 +62,6 @@ Tree-based explorer for Emacs
|
|||
|
||||
* Magit
|
||||
[[https://magit.vc][Git Interface for Emacs]]
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
(use-package magit
|
||||
:bind
|
||||
|
|
@ -66,6 +78,7 @@ This package provides Popup autocompletion
|
|||
:bind
|
||||
(:map company-active-map
|
||||
("<tab>" . company-select-next))
|
||||
:hook prog-mode
|
||||
:custom
|
||||
(company-minimum-prefix-length 1)
|
||||
(company-idle-delay 0.0))
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@
|
|||
(defun lang-default-settings ()
|
||||
"default setting for a language"
|
||||
(display-line-numbers-mode)
|
||||
(eglot-ensure)
|
||||
(company-mode))
|
||||
(treesit-auto-mode)
|
||||
(eglot-ensure))
|
||||
#+end_src
|
||||
|
||||
* Built-in Modes
|
||||
** hook default settings to configured language modes
|
||||
#+begin_src emacs-lisp
|
||||
(let ((langs '("sh" "c++" "mhtml" "java" "js" "json" "python" "LaTeX" "typescript-ts" "tsx-ts")))
|
||||
(dolist (lang langs)
|
||||
(add-hook (intern (concat lang "-mode-hook")) (lambda () (lang-default-settings)))))
|
||||
(let ((langs '("sh" "c++" "go-ts" "java" "js" "json" "LaTeX" "mhtml" "python" "typescript-ts" "tsx-ts")))
|
||||
(dolist (lang langs)
|
||||
(add-hook (intern (concat lang "-mode-hook")) 'lang-default-settings)))
|
||||
#+end_src
|
||||
|
||||
** add LSP server program names to eglot's configuration
|
||||
|
|
@ -35,47 +35,37 @@
|
|||
|
||||
* Installed Modes
|
||||
** Go
|
||||
unused, as tree-sitter has covered most needed functionality
|
||||
#+begin_src emacs-lisp
|
||||
(use-package go-mode
|
||||
:mode "\\.go\\'"
|
||||
:hook
|
||||
(go-mode . (lambda () (lang-default-settings)))
|
||||
:config
|
||||
(setq go-tab-width default-custom-tab-size))
|
||||
|
||||
;; (use-package go-mode
|
||||
;; :mode "\\.go\\'"
|
||||
;; :hook (go-mode . lang-default-settings)
|
||||
;; :config
|
||||
;; (setq go-tab-width default-custom-tab-size))
|
||||
#+end_src
|
||||
|
||||
** TypeScript
|
||||
No longer using typescript-mode, as there's a builtin typescript-ts mode in Emacs 29
|
||||
#+begin_src emacs-lisp
|
||||
(if (version< emacs-version "29")
|
||||
(use-package typescript-ts
|
||||
:mode (("\\.ts\\'" . typescript-ts-mode)
|
||||
("\\.tsx\\'" . tsx-ts-mode))
|
||||
:hook (lang-default-settings
|
||||
(tsx-ts-mode . lang-default-settings))
|
||||
(use-package typescript-mode
|
||||
:mode ("\\.ts\\'" ("\\.tsx\\'" . typescript-tsx-mode))
|
||||
:config
|
||||
(let ((server-programs '(("typescript-ts-mode" . ("typescript-language-server" "--stdio"))
|
||||
("tsx-ts-mode" . ("typescript-language-server""--stdio")))))
|
||||
(setq eglot-server-programs (append server-programs eglot-server-programs))))
|
||||
(use-package typescript-mode
|
||||
:mode ("\\.ts\\'" ("\\.tsx" . typescript-tsx-mode))
|
||||
:config
|
||||
(define-derived-mode typescript-tsx-mode typescript-mode "TypeScriptReact")
|
||||
(dolist (mode '(typescript-mode typescript-tsx-mode))
|
||||
(add-to-list 'eglot-server-programs `(,mode . ("typescript-language-server", "--stdio"))))
|
||||
:hook
|
||||
(typescript-mode . (lambda () (lang-default-settings)
|
||||
(let ((custom-tab-size 2))
|
||||
(setq-default default-tab-width custom-tab-size
|
||||
tab-width custom-tab-size
|
||||
c-basic-offset custom-tab-size))))
|
||||
(typescript-tsx-mode . (lambda ()
|
||||
(lang-default-settings)
|
||||
(let ((custom-tab-size 4))
|
||||
(setq-default default-tab-width custom-tab-size
|
||||
tab-width custom-tab-size
|
||||
c-basic-offset custom-tab-size))))))
|
||||
(define-derived-mode typescript-tsx-mode typescript-mode "TypeScriptReact")
|
||||
(dolist (mode '(ykpescript-mode typescript-tsx-mode))
|
||||
(add-to-list 'eglot-server-programs `(,mode . ("typescript-language-server", "--stdio"))))
|
||||
:hook
|
||||
(typescript-mode . (lambda () (lang-default-settings)
|
||||
(let ((custom-tab-size 2))
|
||||
(setq-default default-tab-width custom-tab-size
|
||||
tab-width custom-tab-size
|
||||
c-basic-offset custom-tab-size))))
|
||||
(typescript-tsx-mode . (lambda ()
|
||||
(lang-default-settings)
|
||||
(let ((custom-tab-size 4))
|
||||
(setq-default default-tab-width custom-tab-size
|
||||
tab-width custom-tab-size
|
||||
c-basic-offset custom-tab-size))))))
|
||||
#+end_src
|
||||
|
||||
** Markdown
|
||||
|
|
@ -122,12 +112,17 @@ python venv manager
|
|||
|
||||
*** Jupyter
|
||||
#+begin_src emacs-lisp
|
||||
(use-package ein
|
||||
:config
|
||||
(add-to-list 'org-babel-load-languages '(ein . t)))
|
||||
;; :custom
|
||||
;; (ein:jupyter-server-use-subcommand "server" "use jupyterlab instead of jupyter notebook")
|
||||
;; :mode (("\\.ipynb\\'". ein:notebook-mode)))
|
||||
(use-package ein
|
||||
:config
|
||||
(add-to-list 'org-babel-load-languages '(ein . t))
|
||||
:bind
|
||||
("C-c C-o" . ein:notebook-open)
|
||||
:commands
|
||||
ein:run
|
||||
ein:notebook-open
|
||||
ein:login)
|
||||
;; :custom
|
||||
;; (ein:jupyter-server-use-subcommand "server" "use jupyterlab instead of jupyter notebook")
|
||||
#+end_src
|
||||
|
||||
*** Tab Size
|
||||
|
|
|
|||
Loading…
Reference in New Issue