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