Further housekeeping, bring the initial load down to under 1500 ms
Some checks failed
/ Test config on 20 (push) Failing after 53s
Some checks failed
/ Test config on 20 (push) Failing after 53s
Make the editor load faster by deferring as much as possible until later use. For example, LSP load is now deferred until first use and no longer blocking. Use only elixir-format from elixir-mode, for similar speed reasons. The rest of the package has been taken over by the treesitter version of the mode.
This commit is contained in:
parent
3ffb484fd8
commit
b0361861b4
13 changed files with 297 additions and 328 deletions
427
elpaca.lock
427
elpaca.lock
File diff suppressed because it is too large
Load diff
|
|
@ -59,7 +59,7 @@
|
||||||
|
|
||||||
;; #====================== Backup config #==============================
|
;; #====================== Backup config #==============================
|
||||||
(setopt backup-directory-alist
|
(setopt backup-directory-alist
|
||||||
`((".*" . "~/.emacs.d/backups/auto-save-list")))
|
`((".*" . "~/.emacs.d/backups/auto-save-list")))
|
||||||
(setopt auto-save-file-name-transforms
|
(setopt auto-save-file-name-transforms
|
||||||
`((".*", "~/.emacs.d/backups/auto-save-list" t)))
|
`((".*", "~/.emacs.d/backups/auto-save-list" t)))
|
||||||
|
|
||||||
|
|
@ -100,16 +100,18 @@
|
||||||
(use-package exec-path-from-shell
|
(use-package exec-path-from-shell
|
||||||
;; :if (memq window-system '(x mac ns))
|
;; :if (memq window-system '(x mac ns))
|
||||||
:ensure t
|
:ensure t
|
||||||
|
:defer t
|
||||||
|
:hook ((elpaca-after-init . exec-path-from-shell-initalize))
|
||||||
:config
|
:config
|
||||||
(declare-function exec-path-from-shell-initialize "exec-path-from-shell")
|
(declare-function exec-path-from-shell-initialize "exec-path-from-shell")
|
||||||
(add-to-list 'exec-path "/usr/local/bin")
|
(add-to-list 'exec-path "/usr/local/bin")
|
||||||
(dolist (var '("DEFT_PATH" "LANG" "LC_CTYPE"))
|
(dolist (var '("DEFT_PATH" "LANG" "LC_CTYPE"))
|
||||||
(add-to-list 'exec-path-from-shell-variables var))
|
(add-to-list 'exec-path-from-shell-variables var)))
|
||||||
(exec-path-from-shell-initialize))
|
|
||||||
|
|
||||||
;; (use-package envrc :ensure t :hook (elpaca-after-init . envrc-global-mode))
|
;; (use-package envrc :ensure t :hook (elpaca-after-init . envrc-global-mode))
|
||||||
|
|
||||||
(use-package direnv :ensure t :config (direnv-mode t))
|
(use-package direnv :ensure t :defer t
|
||||||
|
:hook ((elpaca-after-init . direnv-mode)))
|
||||||
|
|
||||||
;; Draw underline lower
|
;; Draw underline lower
|
||||||
(setopt x-underline-at-descent-line t)
|
(setopt x-underline-at-descent-line t)
|
||||||
|
|
@ -121,13 +123,12 @@
|
||||||
indicate-empty-lines nil)
|
indicate-empty-lines nil)
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;; Treemacs
|
;;;;;;;;;;;;;;;;; Treemacs
|
||||||
(use-package treemacs :ensure t
|
(use-package treemacs :ensure t :defer t
|
||||||
|
:hook ((elpaca-after-init . treemacs-follow-mode)
|
||||||
|
(elpaca-after-init . treemacs-project-follow-mode))
|
||||||
:commands (treemacs-follow-mode treemacs-project-follow-mode treemacs)
|
:commands (treemacs-follow-mode treemacs-project-follow-mode treemacs)
|
||||||
:bind (:map icejam-keys-mode-map
|
:bind (:map icejam-keys-mode-map
|
||||||
([(hyper b)] . treemacs))
|
([(hyper b)] . treemacs)))
|
||||||
:config
|
|
||||||
(treemacs-follow-mode t)
|
|
||||||
(treemacs-project-follow-mode t))
|
|
||||||
|
|
||||||
(use-package treemacs-all-the-icons :ensure t :defer t
|
(use-package treemacs-all-the-icons :ensure t :defer t
|
||||||
:requires (treemacs)
|
:requires (treemacs)
|
||||||
|
|
@ -135,18 +136,14 @@
|
||||||
:config (treemacs-load-theme "all-the-icons"))
|
:config (treemacs-load-theme "all-the-icons"))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;; Record frequency of different commands. Review them later
|
;;;;;;;;;;;;;;;;; Record frequency of different commands. Review them later
|
||||||
(use-package keyfreq :ensure t
|
(use-package keyfreq :ensure t :defer t
|
||||||
:config
|
:hook ((elpaca-after-init . keyfreq-mode)
|
||||||
(declare-function keyfreq-mode "keyfreq")
|
(elpaca-after-init . keyfreq-autosave-mode)))
|
||||||
(declare-function keyfreq-autosave-mode "keyfreq")
|
|
||||||
(keyfreq-mode t)
|
|
||||||
(keyfreq-autosave-mode t))
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;; Show hints about key combinations
|
;;;;;;;;;;;;;;;;; Show hints about key combinations
|
||||||
(use-package which-key :ensure t
|
(use-package which-key :ensure t :defer t
|
||||||
|
:hook ((elpaca-after-init . which-key-mode))
|
||||||
:config
|
:config
|
||||||
(declare-function which-key-mode "which-key")
|
|
||||||
(which-key-mode t)
|
|
||||||
(setopt which-key-idle-delay 0.5))
|
(setopt which-key-idle-delay 0.5))
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;; Use C-n to create a new line
|
;;;;;;;;;;;;;;;;; Use C-n to create a new line
|
||||||
|
|
|
||||||
|
|
@ -12,11 +12,6 @@
|
||||||
(use-package diminish :ensure t)
|
(use-package diminish :ensure t)
|
||||||
(use-package company :ensure t)
|
(use-package company :ensure t)
|
||||||
|
|
||||||
;; https://emacs-lsp.github.io/lsp-mode/page/performance/#use-plists-for-deserialization
|
|
||||||
;; This supposedly makes it faster.
|
|
||||||
(setenv "LSP_USE_PLISTS" "true")
|
|
||||||
(use-package lsp-mode :ensure t)
|
|
||||||
|
|
||||||
;; Finally, wait for installation of these four packages.
|
;; Finally, wait for installation of these four packages.
|
||||||
(declare-function elpaca-wait "elpaca")
|
(declare-function elpaca-wait "elpaca")
|
||||||
(elpaca-wait)
|
(elpaca-wait)
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(require 'icejam-blocking)
|
(require 'icejam-blocking)
|
||||||
|
|
||||||
(use-package yasnippet :ensure t
|
(use-package yasnippet :ensure t :defer t
|
||||||
|
:hook ((elpaca-after-init . yas-global-mode))
|
||||||
:config
|
:config
|
||||||
(yas-global-mode t)
|
|
||||||
(unbind-key "C-c & C-n" yas-minor-mode-map)
|
(unbind-key "C-c & C-n" yas-minor-mode-map)
|
||||||
(unbind-key "C-c & C-s" yas-minor-mode-map)
|
(unbind-key "C-c & C-s" yas-minor-mode-map)
|
||||||
(unbind-key "C-c & C-v" yas-minor-mode-map))
|
(unbind-key "C-c & C-v" yas-minor-mode-map))
|
||||||
|
|
@ -77,7 +77,7 @@
|
||||||
;; Only use RETURN for completion in company
|
;; Only use RETURN for completion in company
|
||||||
(unbind-key "TAB" company-active-map)
|
(unbind-key "TAB" company-active-map)
|
||||||
|
|
||||||
;;; Yasnippet configuration
|
;; Yasnippet configuration
|
||||||
(define-key prog-mode-map (kbd "C-c y") 'company-yasnippet)
|
(define-key prog-mode-map (kbd "C-c y") 'company-yasnippet)
|
||||||
(define-key prog-mode-map (kbd "<f13>") 'icejam-insert-space-and-complete)
|
(define-key prog-mode-map (kbd "<f13>") 'icejam-insert-space-and-complete)
|
||||||
(define-key prog-mode-map (kbd "TAB") 'company-indent-or-complete-common)
|
(define-key prog-mode-map (kbd "TAB") 'company-indent-or-complete-common)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,8 @@
|
||||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
||||||
|
|
||||||
;; Actual orderless
|
;; Actual orderless
|
||||||
(use-package vertico :ensure t
|
(use-package vertico :ensure t :defer t
|
||||||
|
:hook ((elpaca-after-init . vertico-mode))
|
||||||
:config
|
:config
|
||||||
(setopt vertico-scroll-margin 1) ;; Scroll on N-1
|
(setopt vertico-scroll-margin 1) ;; Scroll on N-1
|
||||||
(setopt vertico-count 15) ;; Show 5 more candidates
|
(setopt vertico-count 15) ;; Show 5 more candidates
|
||||||
|
|
@ -41,22 +42,17 @@
|
||||||
|
|
||||||
;; Add working page up /down
|
;; Add working page up /down
|
||||||
(keymap-set vertico-map "<next>" 'vertico-scroll-up)
|
(keymap-set vertico-map "<next>" 'vertico-scroll-up)
|
||||||
(keymap-set vertico-map "<prior>" 'vertico-scroll-down)
|
(keymap-set vertico-map "<prior>" 'vertico-scroll-down))
|
||||||
|
|
||||||
(declare-function vertico-mode "vertico")
|
|
||||||
(vertico-mode t))
|
|
||||||
|
|
||||||
(use-package orderless :ensure t
|
(use-package orderless :ensure t
|
||||||
:config
|
:config
|
||||||
(setopt completion-styles '(orderless partial-completion basic)) ;; Fallback to basic if orderless does not work.
|
;; Fallback to basic if orderless does not work.
|
||||||
|
(setopt completion-styles '(orderless partial-completion basic))
|
||||||
(setopt completion-category-defaults nil)
|
(setopt completion-category-defaults nil)
|
||||||
(setopt completion-category-overrides '((file (styles partial-completion)))))
|
(setopt completion-category-overrides '((file (styles partial-completion)))))
|
||||||
|
|
||||||
|
(use-package marginalia :ensure t :defer t
|
||||||
(use-package marginalia :ensure t
|
:hook ((elpaca-after-init . marginalia-mode)))
|
||||||
:config
|
|
||||||
(declare-function marginalia-mode "marginalia")
|
|
||||||
(marginalia-mode t))
|
|
||||||
|
|
||||||
(use-package consult :ensure t
|
(use-package consult :ensure t
|
||||||
:config
|
:config
|
||||||
|
|
@ -70,7 +66,11 @@
|
||||||
("M-g g" . consult-goto-line)
|
("M-g g" . consult-goto-line)
|
||||||
("C-c a" . consult-ripgrep)))
|
("C-c a" . consult-ripgrep)))
|
||||||
|
|
||||||
(use-package helpful :ensure t)
|
(use-package helpful :ensure t :defer t
|
||||||
|
:bind (([remap describe-key] . helpful-key)
|
||||||
|
([remap describe-variable] . helpful-variable)
|
||||||
|
([remap describe-function] . helpful-callable)
|
||||||
|
([remap describe-command] . helpful-command)))
|
||||||
|
|
||||||
(provide 'icejam-completing-read)
|
(provide 'icejam-completing-read)
|
||||||
;;; icejam-completing-read.el ends here
|
;;; icejam-completing-read.el ends here
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
(require 'icejam-keys-mode)
|
(require 'icejam-keys-mode)
|
||||||
(require 'icejam-transient)
|
(require 'icejam-transient)
|
||||||
|
|
||||||
(use-package deft :ensure t
|
(use-package deft :ensure t :defer t
|
||||||
:config
|
:config
|
||||||
(setopt deft-directory (substitute-in-file-name "$DEFT_PATH")
|
(setopt deft-directory (substitute-in-file-name "$DEFT_PATH")
|
||||||
deft-default-extension "md"
|
deft-default-extension "md"
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
;;; Commentary:
|
;;; Commentary:
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
;; Use flycheck globally to check syntax and compile languages
|
;; Use flycheck checks with flymake.
|
||||||
(use-package flymake-flycheck :ensure t :defer t :config
|
(use-package flymake-flycheck :ensure t :defer t :config
|
||||||
(setq-default
|
(setq-default
|
||||||
flycheck-disabled-checkers
|
flycheck-disabled-checkers
|
||||||
|
|
@ -10,36 +10,18 @@
|
||||||
'(emacs-lisp emacs-lisp-checkdoc
|
'(emacs-lisp emacs-lisp-checkdoc
|
||||||
emacs-lisp-package sh-shellcheck))))
|
emacs-lisp-package sh-shellcheck))))
|
||||||
|
|
||||||
|
;; Use flymake, the built in linter/checker.
|
||||||
(use-package flymake :ensure nil
|
(use-package flymake :ensure nil
|
||||||
|
:defer t
|
||||||
:config
|
:config
|
||||||
(setopt flymake-mode-line-lighter "Fly") ;; Show 'Fly' in mode line
|
;; Show 'Fly' in mode line.
|
||||||
(setopt elisp-flymake-byte-compile-load-path load-path) ;; Use the same load-path as normal configuration
|
(setopt flymake-mode-line-lighter "Fly")
|
||||||
|
;; Use the same load-path as normal configuration. This makes the errors that
|
||||||
|
;; appear in elisp files less jarring.
|
||||||
|
(setopt elisp-flymake-byte-compile-load-path load-path)
|
||||||
:hook ((prog-mode . flymake-mode)
|
:hook ((prog-mode . flymake-mode)
|
||||||
(text-mode . flymake-mode)
|
(text-mode . flymake-mode)
|
||||||
(flymake-mode . flymake-flycheck-auto)))
|
(flymake-mode . flymake-flycheck-auto)))
|
||||||
|
|
||||||
|
|
||||||
;; (use-package flycheck :ensure t
|
|
||||||
;; :custom ((flycheck-emacs-lisp-load-path 'inherit))
|
|
||||||
;; :config
|
|
||||||
;; (global-flycheck-mode t)
|
|
||||||
;; (setopt flycheck-emacs-lisp-load-path 'inherit)
|
|
||||||
;; (unbind-key "C-c ! C-c" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! C-w" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! ?" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! C" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! H" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! V" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! c" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! e" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! h" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! i" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! l" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! n" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! p" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! s" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! v" flycheck-mode-map)
|
|
||||||
;; (unbind-key "C-c ! x" flycheck-mode-map))
|
|
||||||
|
|
||||||
(provide 'icejam-flycheck)
|
(provide 'icejam-flycheck)
|
||||||
;;; icejam-flycheck.el ends here
|
;;; icejam-flycheck.el ends here
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
;;; Highlight misspelled words
|
;;; Highlight misspelled words
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(use-package ispell :ensure nil
|
(use-package ispell :ensure nil :defer t
|
||||||
:config
|
:config
|
||||||
(setopt ispell-program-name "aspell")
|
(setopt ispell-program-name "aspell")
|
||||||
(setopt ispell-extra-args '("--run-together" "--run-together-limit=5" "--run-together-min=2")))
|
(setopt ispell-extra-args '("--run-together" "--run-together-limit=5" "--run-together-min=2")))
|
||||||
|
|
|
||||||
|
|
@ -4,8 +4,11 @@
|
||||||
;;; Code:
|
;;; Code:
|
||||||
(require 'icejam-blocking)
|
(require 'icejam-blocking)
|
||||||
|
|
||||||
;; (use-package lsp-mode :ensure (:depth 5) :requires (company))
|
;; https://emacs-lsp.github.io/lsp-mode/page/performance/#use-plists-for-deserialization
|
||||||
(with-eval-after-load 'lsp-mode
|
;; This supposedly makes it faster.
|
||||||
|
(setenv "LSP_USE_PLISTS" "true")
|
||||||
|
(use-package lsp-mode :ensure t :defer t
|
||||||
|
:config
|
||||||
(add-to-list 'lsp-disabled-clients '(typescript-ts-mode . vue-semantic-server))
|
(add-to-list 'lsp-disabled-clients '(typescript-ts-mode . vue-semantic-server))
|
||||||
(add-to-list 'lsp-disabled-clients '(js-mode . vue-semantic-server))
|
(add-to-list 'lsp-disabled-clients '(js-mode . vue-semantic-server))
|
||||||
(add-to-list 'lsp-disabled-clients '(css-mode . vue-semantic-server))
|
(add-to-list 'lsp-disabled-clients '(css-mode . vue-semantic-server))
|
||||||
|
|
@ -60,8 +63,8 @@
|
||||||
(unbind-key "s-l s r" lsp-mode-map)
|
(unbind-key "s-l s r" lsp-mode-map)
|
||||||
(unbind-key "s-l s s" lsp-mode-map))
|
(unbind-key "s-l s s" lsp-mode-map))
|
||||||
|
|
||||||
(use-package lsp-ui :ensure t :after (lsp-mode))
|
(use-package lsp-ui :ensure t :after (lsp-mode) :defer t
|
||||||
(with-eval-after-load 'lsp-ui
|
:config
|
||||||
(setopt lsp-ui-doc-enable t
|
(setopt lsp-ui-doc-enable t
|
||||||
lsp-ui-header t
|
lsp-ui-header t
|
||||||
lsp-ui-delay 0.5 ;; Wait half a second to display documentation
|
lsp-ui-delay 0.5 ;; Wait half a second to display documentation
|
||||||
|
|
@ -69,7 +72,7 @@
|
||||||
lsp-ui-doc-include-signature t))
|
lsp-ui-doc-include-signature t))
|
||||||
|
|
||||||
;; Lsp debugger mode
|
;; Lsp debugger mode
|
||||||
(use-package dap-mode :ensure t :after (lsp-mode lsp-ui))
|
(use-package dap-mode :ensure t :after (lsp-mode lsp-ui) :defer t)
|
||||||
|
|
||||||
(provide 'icejam-lsp)
|
(provide 'icejam-lsp)
|
||||||
;;; icejam-lsp.el ends here
|
;;; icejam-lsp.el ends here
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,9 @@
|
||||||
(global-eldoc-mode t)
|
(global-eldoc-mode t)
|
||||||
|
|
||||||
;; Revert tag tables without asking
|
;; Revert tag tables without asking
|
||||||
(use-package etags :ensure nil
|
(use-package etags :ensure nil :defer t
|
||||||
:config
|
:config
|
||||||
(setopt tags-revert-without-query t) ;; Revert tags without query
|
(setopt tags-revert-without-query t))
|
||||||
)
|
|
||||||
|
|
||||||
;;; Show trailing whitespace and remove whitespace on save
|
;;; Show trailing whitespace and remove whitespace on save
|
||||||
(use-package whitespace :ensure nil
|
(use-package whitespace :ensure nil
|
||||||
|
|
@ -32,20 +31,19 @@
|
||||||
|
|
||||||
;; Use colorful, matching parens
|
;; Use colorful, matching parens
|
||||||
;; Rework the code below to enumerate each hook separately:
|
;; Rework the code below to enumerate each hook separately:
|
||||||
(use-package rainbow-delimiters :ensure t
|
(use-package rainbow-delimiters :ensure t :defer t
|
||||||
:hook ((prog-mode . rainbow-delimiters-mode)
|
:hook ((prog-mode . rainbow-delimiters-mode)
|
||||||
(text-mode . rainbow-delimiters-mode))
|
(text-mode . rainbow-delimiters-mode)
|
||||||
:config
|
(elpaca-after-init . electric-pair-mode)
|
||||||
(electric-pair-mode t)
|
(elpaca-after-init . show-paren-mode)))
|
||||||
(show-paren-mode t))
|
|
||||||
|
|
||||||
;;; Show hex (#aaa) colors as colors
|
;;; Show hex (#aaa) colors as colors
|
||||||
(use-package rainbow-mode :ensure t
|
(use-package rainbow-mode :ensure t :defer t
|
||||||
:hook ((prog-mode . rainbow-mode)
|
:hook ((prog-mode . rainbow-mode)
|
||||||
(text-mode . rainbow-mode)))
|
(text-mode . rainbow-mode)))
|
||||||
|
|
||||||
;; Dash integration
|
;; Dash integration
|
||||||
(use-package dash-at-point :ensure t)
|
(use-package dash-at-point :ensure t :defer t)
|
||||||
(with-eval-after-load 'dash-at-point
|
(with-eval-after-load 'dash-at-point
|
||||||
(add-to-list 'dash-at-point-mode-alist '(enh-ruby-mode . "ruby,rubygems,rails"))
|
(add-to-list 'dash-at-point-mode-alist '(enh-ruby-mode . "ruby,rubygems,rails"))
|
||||||
(add-to-list 'dash-at-point-mode-alist '(elixir-ts-mode . "elixir,hex")))
|
(add-to-list 'dash-at-point-mode-alist '(elixir-ts-mode . "elixir,hex")))
|
||||||
|
|
@ -61,13 +59,11 @@
|
||||||
(setq-local tab-width step)
|
(setq-local tab-width step)
|
||||||
(setq-local tab-stop-list (number-sequence step 200 step)))
|
(setq-local tab-stop-list (number-sequence step 200 step)))
|
||||||
|
|
||||||
(use-package column-enforce-mode :ensure t
|
(use-package column-enforce-mode :ensure t :defer t
|
||||||
:config
|
:hook (elpaca-after-init . global-column-enforce-mode))
|
||||||
(declare-function global-column-enforce-mode "column-enforce-mode")
|
|
||||||
(global-column-enforce-mode t))
|
|
||||||
|
|
||||||
;; PCRE to Emacs regex translations
|
;; PCRE to Emacs regex translations
|
||||||
(use-package pcre2el :ensure t)
|
(use-package pcre2el :ensure t :defer t)
|
||||||
|
|
||||||
;; Visual regexp
|
;; Visual regexp
|
||||||
(use-package visual-regexp-steroids :ensure t :after (pcre2el)
|
(use-package visual-regexp-steroids :ensure t :after (pcre2el)
|
||||||
|
|
|
||||||
|
|
@ -11,25 +11,27 @@
|
||||||
|
|
||||||
;;; Code:
|
;;; Code:
|
||||||
|
|
||||||
(use-package tree-sitter-langs :ensure t
|
(use-package tree-sitter-langs :ensure t :defer t
|
||||||
:config
|
:commands tree-sitter-langs--bin-dir
|
||||||
(declare-function tree-sitter-langs--bin-dir "tree-sitter-langs")
|
:hook
|
||||||
(add-to-list 'treesit-extra-load-path (tree-sitter-langs--bin-dir))
|
(elpaca-after-init . (lambda () (add-to-list
|
||||||
|
'treesit-extra-load-path
|
||||||
|
(tree-sitter-langs--bin-dir)))))
|
||||||
|
|
||||||
(defun icejam-tree-sitter-symlink-grammar-objects ()
|
(defun icejam-tree-sitter-symlink-grammar-objects ()
|
||||||
"Create symlinks for treesitter grammars.
|
"Create symlinks for treesitter grammars.
|
||||||
Tree-sitter-langs-build releases grammars as LANG.so. Treesit needs
|
Tree-sitter-langs-build releases grammars as LANG.so. Treesit needs
|
||||||
libtree-sitter-LANG.so"
|
libtree-sitter-LANG.so"
|
||||||
(interactive)
|
(interactive)
|
||||||
(dolist (file (directory-files (tree-sitter-langs--bin-dir) 'full
|
(dolist (file (directory-files (tree-sitter-langs--bin-dir) 'full
|
||||||
(concat "\\" (car tree-sitter-load-suffixes) "$")))
|
(concat "\\" (car tree-sitter-load-suffixes) "$")))
|
||||||
;; make symlink (or copy) libtree-sitter-c.so -> c.so
|
;; make symlink (or copy) libtree-sitter-c.so -> c.so
|
||||||
(let ((target (concat (file-name-as-directory (file-name-directory file))
|
(let ((target (concat (file-name-as-directory (file-name-directory file))
|
||||||
"libtree-sitter-"
|
"libtree-sitter-"
|
||||||
(file-name-nondirectory file))))
|
(file-name-nondirectory file))))
|
||||||
(if (memq system-type '(ms-dos windows-nt cygwin))
|
(if (memq system-type '(ms-dos windows-nt cygwin))
|
||||||
(copy-file file target)
|
(copy-file file target)
|
||||||
(make-symbolic-link file target))))))
|
(make-symbolic-link file target)))))
|
||||||
|
|
||||||
(provide 'icejam-tree-sitter)
|
(provide 'icejam-tree-sitter)
|
||||||
;;; icejam-tree-sitter.el ends here
|
;;; icejam-tree-sitter.el ends here
|
||||||
|
|
|
||||||
|
|
@ -9,17 +9,12 @@
|
||||||
(declare-function lsp "lsp-mode" nil)
|
(declare-function lsp "lsp-mode" nil)
|
||||||
(declare-function column-enforce-n "column-enforce-mode" (number))
|
(declare-function column-enforce-n "column-enforce-mode" (number))
|
||||||
|
|
||||||
;; Elixir mode is used for formatting through elixir-format function,
|
;; Only load the elixir-format from elixir mode.
|
||||||
;; so it needs to be loaded without deferring. One it is, we can
|
(use-package elixir-format :defer t
|
||||||
;; make it so that treesit takes over.
|
:ensure (:type git :host github :repo "elixir-editors/emacs-elixir" :files ("elixir-format.el")))
|
||||||
(use-package elixir-mode :ensure t
|
|
||||||
:config
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.exs\\'" . elixir-ts-mode))
|
|
||||||
(add-to-list 'auto-mode-alist '("\\.ex\\'" . elixir-ts-mode)))
|
|
||||||
|
|
||||||
(use-package elixir-ts-mode :ensure t
|
(use-package elixir-ts-mode :ensure t :defer t
|
||||||
:after (elixir-mode lsp-mode lsp-ui)
|
:after (elixir-format lsp-mode lsp-ui))
|
||||||
:defer t)
|
|
||||||
|
|
||||||
(transient-define-prefix icejam-elixir-lang-menu ()
|
(transient-define-prefix icejam-elixir-lang-menu ()
|
||||||
"Elixir Buffer Commands."
|
"Elixir Buffer Commands."
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
;; a warning from the byte compiler.
|
;; a warning from the byte compiler.
|
||||||
(declare-function elpaca-installed-p "elpaca")
|
(declare-function elpaca-installed-p "elpaca")
|
||||||
(unless (elpaca-installed-p 'markdown-mode)
|
(unless (elpaca-installed-p 'markdown-mode)
|
||||||
(use-package markdown-mode :ensure t))
|
(use-package markdown-mode :ensure t :defer t))
|
||||||
|
|
||||||
(with-eval-after-load 'markdown-mode
|
(with-eval-after-load 'markdown-mode
|
||||||
(setq-default markdown-command "pandoc"))
|
(setq-default markdown-command "pandoc"))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue