mirror of
https://gitlab.com/dwt1/dotfiles.git
synced 2026-04-23 19:40:24 +10:00
Updating dotfiles.
This commit is contained in:
@@ -21,7 +21,7 @@ This module provides no flags.
|
||||
** Packages
|
||||
+ [[https://github.com/kiwanami/emacs-calfw][calfw]]
|
||||
+ [[https://github.com/kiwanami/emacs-calfw][calfw-org]]
|
||||
+ [[https://github.com/myuhe/org-gcal.el][org-gcal]]
|
||||
+ [[https://github.com/kidd/org-gcal.el][org-gcal]]
|
||||
|
||||
* Configuration
|
||||
** Changing calendar sources
|
||||
|
||||
@@ -5,4 +5,4 @@
|
||||
(package! calfw-org :pin "03abce97620a4a7f7ec5f911e669da9031ab9088")
|
||||
(package! calfw-cal :pin "03abce97620a4a7f7ec5f911e669da9031ab9088")
|
||||
(package! calfw-ical :pin "03abce97620a4a7f7ec5f911e669da9031ab9088")
|
||||
(package! org-gcal :pin "744505832b34e07b44a5d97d8720b2d7492d7fc9")
|
||||
(package! org-gcal :pin "2cad2d8c175975dea42903cd4e3fd8bec423c01a")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; app/irc/packages.el
|
||||
|
||||
(package! circe :pin "e5bf5f89741a9c43aa406491e94dd8d58c302fb4")
|
||||
(package! circe :pin "89aac22259e5d09ae1183e0df163338fe491e9e7")
|
||||
(package! circe-notifications :pin "291149ac12877bbd062da993479d3533a26862b0")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; app/rss/packages.el
|
||||
|
||||
(package! elfeed :pin "d0405e63863e54a01200740a6717ac875eceabc1")
|
||||
(package! elfeed :pin "8fb09ad75f2ff7d6f7d8b8d1ac65b9be873cc31d")
|
||||
(package! elfeed-org :pin "77b6bbf222487809813de260447d31c4c59902c9")
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
;;; app/twitter/packages.el
|
||||
|
||||
(package! twittering-mode :pin "114891e8fdb4f06b1326a6cf795e49c205cf9e29")
|
||||
(package! avy :pin "509471bad0e8094b8639729ec39ca141fae7d4bd")
|
||||
(package! avy :pin "bbf1e7339eba06784dfe86643bb0fbddf5bb0342")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/company/packages.el
|
||||
|
||||
(package! company :pin "5eb7d868c2a13bbfb14060b79d69f0d59f6a5f60")
|
||||
(package! company :pin "4462e7d399c3d2e1ea1f5d018f4537f1f3d5acfc")
|
||||
(package! company-dict :pin "cd7b8394f6014c57897f65d335d6b2bd65dab1f4")
|
||||
(when (featurep! +childframe)
|
||||
(package! company-box :pin "889d723786df2de27d248c9965149d04af44273a"))
|
||||
(package! company-box :pin "d8f71fde7a3301a62f9f6f627aa51610a294f4df"))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/helm/packages.el
|
||||
|
||||
(package! helm :pin "5d224cb889aea8f090c82c5ae572b8db276bcf80")
|
||||
(package! helm :pin "d2fbf66ea727f27cdf867b2bd6d6f7c706f99192")
|
||||
(package! helm-rg :pin "ee0a3c09da0c843715344919400ab0a0190cc9dc")
|
||||
(package! helm-c-yasnippet :pin "89cc8561e7e57e9d1070ee3641df019c7f49c5dd")
|
||||
(package! helm-company :pin "6eb5c2d730a60e394e005b47c1db018697094dde")
|
||||
@@ -13,7 +13,7 @@
|
||||
(when (featurep! +fuzzy)
|
||||
(package! helm-flx :pin "6640fac5cb16bee73c95b8ed1248a4e5e113690e"))
|
||||
(when (featurep! +childframe)
|
||||
(package! posframe :pin "922e4d239f7a083213d856de67a9686a091b1e27"))
|
||||
(package! posframe :pin "7b92a54e588889a74d36d51167e067676db7be8a"))
|
||||
(when (featurep! :lang org)
|
||||
(package! helm-org :pin "b7a18dfc17e8b933956d61d68c435eee03a96c24"))
|
||||
(package! helm-descbinds :pin "b72515982396b6e336ad7beb6767e95a80fca192")
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
- [[#in-buffer-searching][In-buffer searching]]
|
||||
- [[#ivy-integration-for-various-completing-commands][Ivy integration for various completing commands]]
|
||||
- [[#general][General]]
|
||||
- [[#jump-to-files-buffers-or-projects][Jump to files, buffers or projects)]]
|
||||
- [[#jump-to-files-buffers-or-projects][Jump to files, buffers or projects]]
|
||||
- [[#search][Search]]
|
||||
- [[#configuration][Configuration]]
|
||||
- [[#enable-fuzzynon-fuzzy-search-for-specific-commands][Enable fuzzy/non-fuzzy search for specific commands]]
|
||||
@@ -164,7 +164,7 @@ A wgrep buffer can be opened from swiper with =C-c C-e=.
|
||||
| =M-x=, =SPC := | Smarter, smex-powered M-x |
|
||||
| =SPC '= | Resume last ivy session |
|
||||
|
||||
*** Jump to files, buffers or projects)
|
||||
*** Jump to files, buffers or projects
|
||||
| Keybind | Description |
|
||||
|----------------------+---------------------------------------|
|
||||
| =SPC RET= | Find bookmark |
|
||||
|
||||
@@ -46,6 +46,11 @@ results buffer.")
|
||||
[remap persp-switch-to-buffer] #'+ivy/switch-workspace-buffer
|
||||
[remap evil-show-jumps] #'+ivy/jump-list)
|
||||
:config
|
||||
;; The default sorter is much to slow and the default for `ivy-sort-max-size'
|
||||
;; is way too big (30,000). Turn it down so big repos affect project
|
||||
;; navigation less.
|
||||
(setq ivy-sort-max-size 7500)
|
||||
|
||||
;; Counsel changes a lot of ivy's state at startup; to control for that, we
|
||||
;; need to load it as early as possible. Some packages (like `ivy-prescient')
|
||||
;; require this.
|
||||
@@ -220,7 +225,7 @@ evil-ex-specific constructs, so we disable it solely in evil-ex."
|
||||
(listp counsel-rg-base-command)
|
||||
(member "--path-separator" counsel-rg-base-command))
|
||||
(setf (cadr (member "--path-separator" counsel-rg-base-command))
|
||||
"//"))
|
||||
"/"))
|
||||
|
||||
;; Integrate with `helpful'
|
||||
(setq counsel-describe-function-function #'helpful-callable
|
||||
@@ -376,9 +381,11 @@ evil-ex-specific constructs, so we disable it solely in evil-ex."
|
||||
'(literal regexp initialism)))
|
||||
:config
|
||||
(setq ivy-prescient-sort-commands
|
||||
'(:not swiper swiper-isearch ivy-switch-buffer counsel-grep
|
||||
counsel-git-grep counsel-ag counsel-rg counsel-imenu
|
||||
counsel-yank-pop counsel-recentf counsel-buffer-or-recentf)
|
||||
'(:not swiper swiper-isearch ivy-switch-buffer
|
||||
lsp-ivy-workspace-symbol ivy-resume ivy--restore-session
|
||||
counsel-grep counsel-git-grep counsel-rg counsel-ag
|
||||
counsel-ack counsel-fzf counsel-pt counsel-imenu
|
||||
counsel-yank-pop counsel-recentf counsel-buffer-or-recentf)
|
||||
ivy-prescient-retain-classic-highlighting t)
|
||||
(defun +ivy-prescient-non-fuzzy (str)
|
||||
(let ((prescient-filter-method '(literal regexp)))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; completion/ivy/packages.el
|
||||
|
||||
(package! swiper :pin "c6b60d34ac37bf4d91a25f16d22e528f85e06938")
|
||||
(package! swiper :pin "9bb68419f1088ee4d8f2b76f84995fa02bceeed3")
|
||||
(package! ivy)
|
||||
(package! ivy-hydra)
|
||||
(package! counsel)
|
||||
@@ -12,7 +12,7 @@
|
||||
(package! wgrep :pin "f0ef9bfa44db503cdb2f83fcfbd2fa4e2382ef1f")
|
||||
|
||||
(if (featurep! +prescient)
|
||||
(package! ivy-prescient :pin "b11d79b10df12c58edc3487371c2c47dfb9b50e6")
|
||||
(package! ivy-prescient :pin "cc289ba3b0d89f251267ca2b669d01b3afecc530")
|
||||
(when (featurep! +fuzzy)
|
||||
(package! flx :pin "17f5c9cb2af18aa6f52910ff4a5a63591261ced5")))
|
||||
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
:desc "LSP Code actions" "a" #'lsp-execute-code-action
|
||||
:desc "LSP Organize imports" "o" #'lsp-organize-imports
|
||||
:desc "LSP Rename" "r" #'lsp-rename
|
||||
(:after lsp-mode
|
||||
:desc "LSP" "l" lsp-command-map)
|
||||
:desc "LSP" "l" #'+default/lsp-command-map
|
||||
(:when (featurep! :completion ivy)
|
||||
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
||||
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
||||
@@ -119,6 +118,7 @@
|
||||
:desc "Search project" "p" #'+default/search-project
|
||||
:desc "Search other project" "P" #'+default/search-other-project
|
||||
:desc "Search buffer" "s" #'+default/search-buffer
|
||||
:desc "Search buffer for thing at point" "S" #'swiper-isearch-thing-at-point
|
||||
:desc "Dictionary" "t" #'+lookup/dictionary-definition
|
||||
:desc "Thesaurus" "T" #'+lookup/synonyms)
|
||||
|
||||
@@ -204,7 +204,7 @@
|
||||
(:when (featurep! :term eshell)
|
||||
:desc "Toggle eshell popup" "e" #'+eshell/toggle
|
||||
:desc "Open eshell here" "E" #'+eshell/here)
|
||||
(:when (featurep! :tools macos)
|
||||
(:when (featurep! :os macos)
|
||||
:desc "Reveal in Finder" "o" #'+macos/reveal-in-finder
|
||||
:desc "Reveal project in Finder" "O" #'+macos/reveal-project-in-finder
|
||||
:desc "Send to Transmit" "u" #'+macos/send-to-transmit
|
||||
@@ -279,8 +279,10 @@
|
||||
(:when (featurep! :lang org +present)
|
||||
:desc "org-tree-slide mode" "p" #'org-tree-slide-mode)
|
||||
:desc "Read-only mode" "r" #'read-only-mode
|
||||
(:when (featurep! :checkers spell)
|
||||
:desc "Flyspell" "s" #'flyspell-mode)
|
||||
(:when (and (featurep! :checkers spell) (not (featurep! :checkers spell +flyspell)))
|
||||
:desc "Spell checker" "s" #'spell-fu-mode)
|
||||
(:when (featurep! :checkers spell +flyspell)
|
||||
:desc "Spell checker" "s" #'flyspell-mode)
|
||||
(:when (featurep! :lang org +pomodoro)
|
||||
:desc "Pomodoro timer" "t" #'org-pomodoro)
|
||||
(:when (featurep! :ui zen)
|
||||
|
||||
@@ -132,11 +132,7 @@
|
||||
"C-j" #'company-select-next-or-abort
|
||||
"C-k" #'company-select-previous-or-abort
|
||||
"C-s" (cmd! (company-search-abort) (company-filter-candidates))
|
||||
[escape] #'company-search-abort))
|
||||
;; TAB auto-completion in term buffers
|
||||
(:after comint :map comint-mode-map
|
||||
"TAB" #'company-complete
|
||||
[tab] #'company-complete))
|
||||
[escape] #'company-search-abort)))
|
||||
|
||||
(:when (featurep! :completion ivy)
|
||||
(:after ivy
|
||||
@@ -341,37 +337,36 @@
|
||||
;;; <leader> c --- code
|
||||
(:prefix-map ("c" . "code")
|
||||
(:when (and (featurep! :tools lsp) (not (featurep! :tools lsp +eglot)))
|
||||
:desc "LSP Execute code action" "a" #'lsp-execute-code-action
|
||||
:desc "LSP Organize imports" "o" #'lsp-organize-imports
|
||||
(:when (featurep! :completion ivy)
|
||||
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
||||
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
||||
(:when (featurep! :completion helm)
|
||||
:desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol
|
||||
:desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol)
|
||||
:desc "LSP Rename" "r" #'lsp-rename
|
||||
(:after lsp-mode
|
||||
:desc "LSP" "l" lsp-command-map))
|
||||
(:when (featurep! :tools lsp +eglot)
|
||||
:desc "LSP Execute code action" "a" #'eglot-code-actions
|
||||
:desc "LSP Rename" "r" #'eglot-rename
|
||||
:desc "LSP Find declaration" "j" #'eglot-find-declaration)
|
||||
:desc "Compile" "c" #'compile
|
||||
:desc "Recompile" "C" #'recompile
|
||||
:desc "Jump to definition" "d" #'+lookup/definition
|
||||
:desc "Jump to references" "D" #'+lookup/references
|
||||
:desc "Evaluate buffer/region" "e" #'+eval/buffer-or-region
|
||||
:desc "Evaluate & replace region" "E" #'+eval:replace-region
|
||||
:desc "Format buffer/region" "f" #'+format/region-or-buffer
|
||||
:desc "Find implementations" "i" #'+lookup/implementations
|
||||
:desc "Jump to documentation" "k" #'+lookup/documentation
|
||||
:desc "Send to repl" "s" #'+eval/send-region-to-repl
|
||||
:desc "Find type definition" "t" #'+lookup/type-definition
|
||||
:desc "Delete trailing whitespace" "w" #'delete-trailing-whitespace
|
||||
:desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines
|
||||
:desc "List errors" "x" #'flymake-show-diagnostics-buffer
|
||||
(:when (featurep! :checkers syntax)
|
||||
:desc "List errors" "x" #'flycheck-list-errors))
|
||||
:desc "LSP Execute code action" "a" #'lsp-execute-code-action
|
||||
:desc "LSP Organize imports" "o" #'lsp-organize-imports
|
||||
(:when (featurep! :completion ivy)
|
||||
:desc "Jump to symbol in current workspace" "j" #'lsp-ivy-workspace-symbol
|
||||
:desc "Jump to symbol in any workspace" "J" #'lsp-ivy-global-workspace-symbol)
|
||||
(:when (featurep! :completion helm)
|
||||
:desc "Jump to symbol in current workspace" "j" #'helm-lsp-workspace-symbol
|
||||
:desc "Jump to symbol in any workspace" "J" #'helm-lsp-global-workspace-symbol)
|
||||
:desc "LSP" "l" #'+default/lsp-command-map
|
||||
:desc "LSP Rename" "r" #'lsp-rename)
|
||||
(:when (featurep! :tools lsp +eglot)
|
||||
:desc "LSP Execute code action" "a" #'eglot-code-actions
|
||||
:desc "LSP Rename" "r" #'eglot-rename
|
||||
:desc "LSP Find declaration" "j" #'eglot-find-declaration)
|
||||
:desc "Compile" "c" #'compile
|
||||
:desc "Recompile" "C" #'recompile
|
||||
:desc "Jump to definition" "d" #'+lookup/definition
|
||||
:desc "Jump to references" "D" #'+lookup/references
|
||||
:desc "Evaluate buffer/region" "e" #'+eval/buffer-or-region
|
||||
:desc "Evaluate & replace region" "E" #'+eval:replace-region
|
||||
:desc "Format buffer/region" "f" #'+format/region-or-buffer
|
||||
:desc "Find implementations" "i" #'+lookup/implementations
|
||||
:desc "Jump to documentation" "k" #'+lookup/documentation
|
||||
:desc "Send to repl" "s" #'+eval/send-region-to-repl
|
||||
:desc "Find type definition" "t" #'+lookup/type-definition
|
||||
:desc "Delete trailing whitespace" "w" #'delete-trailing-whitespace
|
||||
:desc "Delete trailing newlines" "W" #'doom/delete-trailing-newlines
|
||||
:desc "List errors" "x" #'flymake-show-diagnostics-buffer
|
||||
(:when (featurep! :checkers syntax)
|
||||
:desc "List errors" "x" #'flycheck-list-errors))
|
||||
|
||||
;;; <leader> f --- file
|
||||
(:prefix-map ("f" . "file")
|
||||
@@ -545,7 +540,7 @@
|
||||
(:when (featurep! :term eshell)
|
||||
:desc "Toggle eshell popup" "e" #'+eshell/toggle
|
||||
:desc "Open eshell here" "E" #'+eshell/here)
|
||||
(:when (featurep! :tools macos)
|
||||
(:when (featurep! :os macos)
|
||||
:desc "Reveal in Finder" "o" #'+macos/reveal-in-finder
|
||||
:desc "Reveal project in Finder" "O" #'+macos/reveal-project-in-finder
|
||||
:desc "Send to Transmit" "u" #'+macos/send-to-transmit
|
||||
@@ -645,6 +640,7 @@
|
||||
:desc "Search other project" "P" #'+default/search-other-project
|
||||
:desc "Jump to mark" "r" #'evil-show-marks
|
||||
:desc "Search buffer" "s" #'+default/search-buffer
|
||||
:desc "Search buffer for thing at point" "S" #'swiper-isearch-thing-at-point
|
||||
:desc "Dictionary" "t" #'+lookup/dictionary-definition
|
||||
:desc "Thesaurus" "T" #'+lookup/synonyms)
|
||||
|
||||
@@ -665,8 +661,10 @@
|
||||
(:when (featurep! :lang org +present)
|
||||
:desc "org-tree-slide mode" "p" #'org-tree-slide-mode)
|
||||
:desc "Read-only mode" "r" #'read-only-mode
|
||||
(:when (featurep! :checkers spell)
|
||||
:desc "Flyspell" "s" #'flyspell-mode)
|
||||
(:when (and (featurep! :checkers spell) (not (featurep! :checkers spell +flyspell)))
|
||||
:desc "Spell checker" "s" #'spell-fu-mode)
|
||||
(:when (featurep! :checkers spell +flyspell)
|
||||
:desc "Spell checker" "s" #'flyspell-mode)
|
||||
(:when (featurep! :lang org +pomodoro)
|
||||
:desc "Pomodoro timer" "t" #'org-pomodoro)
|
||||
:desc "Soft line wrapping" "w" #'visual-line-mode
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
ivy-switch-buffer-map))
|
||||
((featurep! :completion helm)
|
||||
'(helm-map
|
||||
helm-ag-map
|
||||
helm-rg-map
|
||||
helm-read-file-map))))
|
||||
"A list of all the keymaps used for the minibuffer.")
|
||||
|
||||
|
||||
@@ -12,64 +12,68 @@ byte-compiled from.")
|
||||
(defvar org-mode-hook)
|
||||
(defvar org-inhibit-startup)
|
||||
|
||||
;;;###autoload (add-hook 'org-mode-hook #'+literate-enable-recompile-h)
|
||||
|
||||
;;;###autoload
|
||||
(defun +literate-tangle-h ()
|
||||
"Tangles `+literate-config-file' if it has changed."
|
||||
(print! (start "Compiling your literate config..."))
|
||||
(print-group!
|
||||
(let* ((default-directory doom-private-dir)
|
||||
(org (expand-file-name +literate-config-file))
|
||||
(dest (concat (file-name-sans-extension +literate-config-file) ".el")))
|
||||
(and (require 'ox)
|
||||
(require 'ob-tangle)
|
||||
(letf! (;; Operate on a copy because `org-babel-tangle' has
|
||||
;; side-effects we need to undo immediately as not to
|
||||
;; overwrite the user's config; it's bad ettiquite.
|
||||
(backup (make-temp-file (concat (file-name-nondirectory org) ".")))
|
||||
;; A hack to prevent ob-tangle from operating relative to the
|
||||
;; backup file and thus tangling to the wrong destinations.
|
||||
(defun org-babel-tangle-single-block (&rest args)
|
||||
(let* ((spec (apply org-babel-tangle-single-block args))
|
||||
(file (nth 1 spec))
|
||||
(file (if (file-equal-p file backup) org file))
|
||||
(file (if org-babel-tangle-use-relative-file-links
|
||||
(file-relative-name file)
|
||||
file)))
|
||||
(setf (nth 1 spec) file)
|
||||
spec))
|
||||
;; Ensure output conforms to the formatting of all doom CLIs
|
||||
(defun message (msg &rest args)
|
||||
(when msg
|
||||
(print! (info "%s") (apply #'format msg args)))))
|
||||
(unwind-protect
|
||||
(with-temp-file backup
|
||||
(insert-file-contents org)
|
||||
(let ((buffer-file-name backup)
|
||||
;; Prevent unwanted entries in recentf, or formatters, or
|
||||
;; anything that could be on these hooks, really. Nothing
|
||||
;; else should be touching these files (particularly in
|
||||
;; interactive sessions).
|
||||
(write-file-functions nil)
|
||||
(before-save-hook nil)
|
||||
(after-save-hook nil)
|
||||
;; Prevent infinite recursion due to recompile-on-save
|
||||
;; hooks later, and speed up `org-mode' init.
|
||||
(org-mode-hook nil)
|
||||
(org-inhibit-startup t))
|
||||
(org-mode)
|
||||
(with-silent-modifications
|
||||
;; Tangling won't ordinarily expand #+INCLUDE directives,
|
||||
;; so I do it myself.
|
||||
(org-export-expand-include-keyword)
|
||||
(org-babel-tangle nil dest))))
|
||||
(ignore-errors (delete-file backup)))
|
||||
;; Write an empty file to serve as our mtime cache
|
||||
(with-temp-file +literate-config-cache-file)
|
||||
t)))))
|
||||
(and (not (getenv "__NOTANGLE"))
|
||||
(require 'ox nil t)
|
||||
(require 'ob-tangle nil t)
|
||||
(letf! ((default-directory doom-private-dir)
|
||||
(target +literate-config-file)
|
||||
(cache +literate-config-cache-file)
|
||||
(dest (expand-file-name (concat (file-name-base target) ".el")))
|
||||
;; Operate on a copy because `org-babel-tangle' has
|
||||
;; side-effects we need to undo immediately as not to
|
||||
;; overwrite the user's config; it's bad ettiquite.
|
||||
(backup (make-temp-file (concat (file-name-nondirectory target) ".")))
|
||||
|
||||
;;;###autoload
|
||||
(add-hook 'org-mode-hook #'+literate-enable-recompile-h)
|
||||
;; HACK A hack to prevent ob-tangle from operating relative to
|
||||
;; the backup file and thus tangling to the wrong
|
||||
;; destinations.
|
||||
(defun org-babel-tangle-single-block (&rest args)
|
||||
(let* ((spec (apply org-babel-tangle-single-block args))
|
||||
(file (nth 1 spec))
|
||||
(file (if (file-equal-p file backup) target file))
|
||||
(file (if org-babel-tangle-use-relative-file-links
|
||||
(file-relative-name file)
|
||||
file)))
|
||||
(setf (nth 1 spec) file)
|
||||
spec))
|
||||
;; Ensure output conforms to the formatting of all doom CLIs
|
||||
(defun message (msg &rest args)
|
||||
(when msg
|
||||
(print! (info "%s") (apply #'format msg args)))))
|
||||
(print! (start "Compiling your literate config..."))
|
||||
(print-group!
|
||||
(unwind-protect
|
||||
(with-temp-file backup
|
||||
(insert-file-contents target)
|
||||
(let ((buffer-file-name backup)
|
||||
;; Prevent unwanted entries in recentf, or formatters, or
|
||||
;; anything that could be on these hooks, really. Nothing
|
||||
;; else should be touching these files (particularly in
|
||||
;; interactive sessions).
|
||||
(write-file-functions nil)
|
||||
(before-save-hook nil)
|
||||
(after-save-hook nil)
|
||||
;; Prevent infinite recursion due to recompile-on-save
|
||||
;; hooks later, and speed up `org-mode' init.
|
||||
(org-mode-hook nil)
|
||||
(org-inhibit-startup t))
|
||||
(org-mode)
|
||||
(with-silent-modifications
|
||||
;; Tangling won't ordinarily expand #+INCLUDE directives,
|
||||
;; so I do it myself.
|
||||
(org-export-expand-include-keyword)
|
||||
(org-babel-tangle nil dest))))
|
||||
(ignore-errors (delete-file backup)))
|
||||
;; Write an empty file to serve as our mtime cache
|
||||
(with-temp-file cache)
|
||||
(if doom-interactive-p t
|
||||
(message "Restarting..." )
|
||||
(throw 'exit "__NOTANGLE=1 $@"))))))
|
||||
|
||||
;;;###autoload
|
||||
(defalias '+literate/reload #'doom/reload)
|
||||
@@ -85,5 +89,6 @@ byte-compiled from.")
|
||||
|
||||
We assume any org file in `doom-private-dir' is connected to your literate
|
||||
config, and should trigger a recompile if changed."
|
||||
(when (file-in-directory-p buffer-file-name doom-private-dir)
|
||||
(+literate-tangle-h)))
|
||||
(and (file-in-directory-p
|
||||
buffer-file-name (file-name-directory +literate-config-file))
|
||||
(+literate-tangle-h)))
|
||||
|
||||
@@ -176,6 +176,29 @@ more information on modifiers."
|
||||
(balance-windows (window-parent)))
|
||||
(if file (evil-edit file)))
|
||||
|
||||
;;;###autoload (autoload '+evil-join-a "editor/evil/autoload/advice" nil nil)
|
||||
(evil-define-operator +evil-join-a (beg end)
|
||||
"Join the selected lines.
|
||||
|
||||
This advice improves on `evil-join' by removing comment delimiters when joining
|
||||
commented lines, by using `fill-region-as-paragraph'.
|
||||
|
||||
From https://github.com/emacs-evil/evil/issues/606"
|
||||
:motion evil-line
|
||||
(let* ((count (count-lines beg end))
|
||||
(count (if (> count 1) (1- count) count))
|
||||
(fixup-mark (make-marker)))
|
||||
(dotimes (var count)
|
||||
(if (and (bolp) (eolp))
|
||||
(join-line 1)
|
||||
(let* ((end (line-beginning-position 3))
|
||||
(fill-column (1+ (- end beg))))
|
||||
(set-marker fixup-mark (line-end-position))
|
||||
(fill-region-as-paragraph beg end nil t)
|
||||
(goto-char fixup-mark)
|
||||
(fixup-whitespace))))
|
||||
(set-marker fixup-mark nil)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +evil--fix-dabbrev-in-minibuffer-h ()
|
||||
"Make `try-expand-dabbrev' from `hippie-expand' work in minibuffer. See
|
||||
|
||||
@@ -155,6 +155,17 @@ directives. By default, this only recognizes C directives.")
|
||||
(run-at-time 0.1 nil #'helpful-key key-sequence)
|
||||
(abort-recursive-edit)))
|
||||
|
||||
;; Make J (evil-join) remove comment delimiters when joining lines.
|
||||
(advice-add #'evil-join :override #'+evil-join-a)
|
||||
|
||||
;; Prevent gw (`evil-fill') and gq (`evil-fill-and-move') from squeezing
|
||||
;; spaces. It doesn't in vim, so it shouldn't in evil.
|
||||
(defadvice! +evil--no-squeeze-on-fill-a (orig-fn &rest args)
|
||||
:around '(evil-fill evil-fill-and-move)
|
||||
(letf! (defun fill-region (from to &optional justify nosqueeze to-eop)
|
||||
(funcall fill-region from to justify t to-eop))
|
||||
(apply orig-fn args)))
|
||||
|
||||
;; Make ESC (from normal mode) the universal escaper. See `doom-escape-hook'.
|
||||
(advice-add #'evil-force-normal-state :after #'+evil-escape-a)
|
||||
|
||||
@@ -373,16 +384,18 @@ directives. By default, this only recognizes C directives.")
|
||||
;;; Keybinds
|
||||
|
||||
;; Keybinds that have no Emacs+evil analogues (i.e. don't exist):
|
||||
;; zq - mark word at point as good word
|
||||
;; zw - mark word at point as bad
|
||||
;; zu{q,w} - undo last marking
|
||||
;; Keybinds that evil define:
|
||||
;; z= - correct flyspell word at point
|
||||
;; ]s - jump to previous spelling error
|
||||
;; [s - jump to next spelling error
|
||||
|
||||
(map! :v "@" #'+evil:apply-macro
|
||||
|
||||
;; implement dictionary keybinds
|
||||
;; evil already defines 'z=' to `ispell-word' = correct word at point
|
||||
(:when (featurep! :checkers spell)
|
||||
:n "zq" #'+spell/add-word
|
||||
:n "zw" #'+spell/remove-word
|
||||
:m "[s" #'+spell/previous-error
|
||||
:m "]s" #'+spell/next-error)
|
||||
|
||||
;; ported from vim-unimpaired
|
||||
:n "] SPC" #'+evil/insert-newline-below
|
||||
:n "[ SPC" #'+evil/insert-newline-above
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/evil/packages.el
|
||||
|
||||
(package! evil :pin "2bc6ca3587502fde67b93e411e329fc8224c916a")
|
||||
(package! evil :pin "1e7aa5bfbd86feff0ed5982e487070352d326b90")
|
||||
(package! evil-args :pin "758ad5ae54ad34202064fec192c88151c08cb387")
|
||||
(package! evil-easymotion :pin "f96c2ed38ddc07908db7c3c11bcd6285a3e8c2e9")
|
||||
(package! evil-embrace :pin "4379adea032b25e359d01a36301b4a5afdd0d1b7")
|
||||
@@ -33,4 +33,4 @@
|
||||
(package! neotree)
|
||||
(autoload 'neotree-make-executor "neotree" nil nil 'macro))
|
||||
|
||||
(package! evil-collection :pin "3e62b6b1312f7907081be41a032aaacffa732fef"))
|
||||
(package! evil-collection :pin "c136589d9584e5d01a4b3f2e4cf8ac5f5a23be63"))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/file-templates/packages.el
|
||||
|
||||
(package! yasnippet :pin "5b1217ab085fab4abeb1118dccb260691b446703")
|
||||
(package! yasnippet :pin "5cbdbf0d2015540c59ed8ee0fcf4788effdf75b6")
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
|
||||
(package! hideshow :built-in t)
|
||||
|
||||
(package! vimish-fold :pin "63685239655a151181b9152e45478dad587f86f2")
|
||||
(package! vimish-fold :pin "9d12e39f01da517565666e09a2e32e01aed24a90")
|
||||
(when (featurep! :editor evil)
|
||||
(package! evil-vimish-fold :pin "b6e0e6b91b8cd047e80debef1a536d9d49eef31a"))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/god/packages.el
|
||||
|
||||
(package! god-mode :pin "1eb6ef3a4f67a805c5d6deb1e3895b6c853707d7")
|
||||
(package! god-mode :pin "ad2e6745294843462f78768b5a1cd3b0d3563951")
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
'((operators normal)
|
||||
c-w
|
||||
(prettify insert)
|
||||
(atom-movement normal visual)
|
||||
(atom-movement t)
|
||||
slurp/barf-lispy
|
||||
additional
|
||||
additional-insert))
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/lispyville/packages.el
|
||||
|
||||
(package! lispy :pin "cdaa9c70ca39a880163cbbce924bb46cc56b9fa4")
|
||||
(package! lispy :pin "0a9dcfdfbc20cadbb9cb29b224dc64b8efdd7b70")
|
||||
(when (featurep! :editor evil)
|
||||
(package! lispyville :pin "25a70126ea807653e0a8c512d4128c90ed673d7a"))
|
||||
(package! lispyville :pin "0f13f26cd6aa71f9fd852186ad4a00c4294661cd"))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/objed/packages.el
|
||||
|
||||
(package! objed :pin "e89d8dae3b2d4331a4455d2a7b203500537d184d")
|
||||
(package! objed :pin "dea5a64a4da32e8947fe5b45de569e293aaa8a96")
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
#'yas-minor-mode-on)
|
||||
|
||||
:config
|
||||
(add-to-list 'doom-debug-variables '(yas-verbosity . 3))
|
||||
|
||||
;; Allow private snippets in DOOMDIR/snippets
|
||||
(add-to-list 'yas-snippet-dirs '+snippets-dir)
|
||||
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
:recipe (:host github
|
||||
:repo "hlissner/doom-snippets"
|
||||
:files ("*.el" "*"))
|
||||
:pin "21b7c8d37224768091a34a6c3ede68d52d03fb18")
|
||||
:pin "60c57d66d2afd1798bff5023a54ab155f311746a")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; editor/word-wrap/packages.el
|
||||
|
||||
(package! adaptive-wrap :pin "1810c0ee8d827dd502ddeaae5bd759d4811fcbce")
|
||||
(package! adaptive-wrap :pin "319db649fb083db3ad07b4c71ee6c9429497043b")
|
||||
|
||||
@@ -168,11 +168,18 @@ we have to clean it up ourselves."
|
||||
(global-set-key [remap find-dired] #'fd-dired)
|
||||
(set-popup-rule! "^\\*F\\(?:d\\|ind\\)\\*$" :ignore t))
|
||||
|
||||
(use-package! dired-aux
|
||||
:defer t
|
||||
:config
|
||||
(setq dired-create-destination-dirs 'ask
|
||||
dired-vc-rename-file t))
|
||||
|
||||
;;;###package dired-git-info
|
||||
(map! :after dired
|
||||
:map (dired-mode-map ranger-mode-map)
|
||||
:ng ")" #'dired-git-info-mode)
|
||||
(setq dgi-commit-message-format "%h %cs %s"
|
||||
dgi-auto-hide-details-p nil)
|
||||
(after! wdired
|
||||
;; Temporarily disable `dired-git-info-mode' when entering wdired, due to
|
||||
;; reported incompatibilities.
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; emacs/dired/packages.el
|
||||
|
||||
(package! diredfl :pin "83567d00affce66a4e501563eddd0bd436ac48d0")
|
||||
(package! diredfl :pin "cd052dfef602fe79d8dfbcf9f06e6da74412218b")
|
||||
(package! dired-git-info :pin "b47f2b0c3a6cb9b7a62a4ee2605a492e512d40a9")
|
||||
(package! diff-hl :pin "2281a89a3ddc6616073da6f190dda08d23b18ba6")
|
||||
(package! dired-rsync :pin "bfd5c155be1cb6b71c83e5f41116c81b6532b6d5")
|
||||
(when (featurep! +ranger)
|
||||
(package! ranger :pin "d7c18370981c9e585bc0fb78f7e55033457ca643"))
|
||||
(package! ranger :pin "caf75f0060e503af078c7e5bb50d9aaa508e6f3e"))
|
||||
(when (featurep! +icons)
|
||||
(package! all-the-icons-dired :pin "fc2dfa1e9eb8bf1c402a675e7089638d702a27a5"))
|
||||
(package! fd-dired :pin "5622041068d5fa2f299dbc8aa91fece0ba260086")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; emacs/ibuffer/packages.el
|
||||
|
||||
(package! ibuffer-projectile :pin "504b0edaa0d937ce60ccc8fdf09f2dae0a90fbaf")
|
||||
(package! ibuffer-vc :pin "1249c1e30cf11badfe032ac3b1058f24ba510ace")
|
||||
(package! ibuffer-projectile :pin "ecbe482804a217b1471593f6c7a8b3d64f3cdc47")
|
||||
(package! ibuffer-vc :pin "5fa6aea09bc67f71ea743302d609f459967b1e81")
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
(package! smerge-mode :built-in t)
|
||||
|
||||
(package! browse-at-remote :pin "6aecae4b5d202e582425fc8aa2c9c2b6a4779f25")
|
||||
(package! git-commit :pin "d459e528f46423f1976e5fa415e64f8f7162b473")
|
||||
(package! git-timemachine :pin "391eb61050de321101e631fcf373fc70ec6e7700")
|
||||
(package! git-commit :pin "321214c3a2dd10fdf672ba96bd00703a51094bbe")
|
||||
(package! git-timemachine :pin "8d675750e921a047707fcdc36d84f8439b19a907")
|
||||
(package! gitconfig-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217")
|
||||
(package! gitignore-mode :pin "55468314a5f6b77d2c96be62c7005ac94545e217")
|
||||
|
||||
@@ -100,7 +100,7 @@ sudo apt-get install isync # mbsync
|
||||
# or
|
||||
sudo apt-get install offlineimap
|
||||
# then
|
||||
sudo apt-get install maildir-utils # mu
|
||||
sudo apt-get install maildir-utils mu4e # mu and mu4e respectivly
|
||||
#+END_SRC
|
||||
* TODO Features
|
||||
|
||||
@@ -173,6 +173,26 @@ Then configure Emacs to use your email address:
|
||||
** =No such file or directory, mu4e=
|
||||
You will get =No such file or directory, mu4e= errors if you don't run ~doom
|
||||
sync~ after installing =mu= through your package manager.
|
||||
|
||||
Some times the the ~mu~ package does not include ~mu4e~ (*cough Ubuntu*).
|
||||
if that's the case you will need to [[https://github.com/djcb/mu][install]] it and add it to your ~load-path~
|
||||
you can do that by...
|
||||
#+BEGIN_SRC emacs-lisp :tangle no
|
||||
(add-to-list 'load-path "your/path/to/mu4e")
|
||||
;; if you installed it using your package manager
|
||||
(add-to-list 'load-path "/usr/share/emacs/site-lisp/mu4e")
|
||||
;; if you built from source
|
||||
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp/mu4e")
|
||||
#+END_SRC
|
||||
|
||||
If you have completely lost your install then you can use this handy command!
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
find / -type d -iname '*mu4e*'
|
||||
# I reccomend rerouting all of the error to /dev/null
|
||||
find / -type d -iname '*mu4e*' 2> /dev/null
|
||||
#+END_SRC
|
||||
|
||||
** ~(void-function org-time-add)~ error on Gentoo
|
||||
Gentoo users will see this error because [[https://gitweb.gentoo.org/repo/gentoo.git/tree/net-mail/mu/files/70mu-gentoo.el#n2][the =net-mail/mu= package eagerly loads
|
||||
=mu4e= (which pulls in =org=) much too early]]; before Emacs reads =~/.emacs.d=.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; email/notmuch/packages.el
|
||||
|
||||
(package! notmuch :pin "ad9c2e91a012920bebfe70bc472d44678abc3259")
|
||||
(package! org-mime :pin "9f8444603806e6baa94b2b67a23aab0ea52fef97")
|
||||
(package! notmuch :pin "8776faf6d5118e8152ecfacf94accf35ccebf1d2")
|
||||
(package! org-mime :pin "9bb6351b25c62835c7881fc64096028eb8ef83ef")
|
||||
(when (featurep! :completion ivy)
|
||||
(package! counsel-notmuch :pin "a4a1562935e4180c42524c51609d1283e9be0688"))
|
||||
(when (featurep! :completion helm)
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
;; branches which straight cannot detect without our help.
|
||||
(package! apel :recipe (:branch "apel-wl") :pin "d146ddbf8818e81d3577d5eee7825d377bec0c73")
|
||||
(package! flim :recipe (:branch "flim-1_14-wl") :pin "f303f2f6c124bc8635add96d3326a2209749437b")
|
||||
(package! semi :recipe (:branch "semi-1_14-wl") :pin "57a948c5f07e57e78ab3c0e6fd76ffcd591bb4ac")
|
||||
(package! semi :recipe (:branch "semi-1_14-wl") :pin "10897f024fd9282c73385d24514cc4b57fe193db")
|
||||
|
||||
(package! wanderlust :pin "7af0d582cd48a37469e0606ea35887740d78c8b5")
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
|
||||
(package! migemo :pin "f42832c8ac462ecbec9a16eb781194f876fba64a")
|
||||
(package! avy-migemo :pin "922a6dd82c0bfa316b0fbb56a9d4dd4ffa5707e7")
|
||||
(package! ddskk :pin "fe7f82ba568dc653431bf824a764993aa86a7aa3")
|
||||
(package! ddskk :pin "275a831be77573470309a78967734d2b6d10f218")
|
||||
(package! pangu-spacing :pin "f92898949ba3bf991fd229416f3bbb54e9c6c223")
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
:recipe (:host github :repo "agda/agda"
|
||||
:files ("src/data/emacs-mode/agda-input.el")
|
||||
:nonrecursive t)
|
||||
:pin "8eb0d01811a663cf2b27b482b3b18690adfa094b")
|
||||
:pin "36738c13e2e85f1029083e974cdcff6927d48980")
|
||||
|
||||
(package! agda2-mode
|
||||
:recipe (:host github :repo "agda/agda"
|
||||
:files ("src/data/emacs-mode/*.el"
|
||||
(:exclude "agda-input.el"))
|
||||
:nonrecursive t)
|
||||
:pin "8eb0d01811a663cf2b27b482b3b18690adfa094b"))
|
||||
:pin "36738c13e2e85f1029083e974cdcff6927d48980"))
|
||||
|
||||
@@ -8,8 +8,9 @@
|
||||
- [[#module-flags][Module Flags]]
|
||||
- [[#plugins][Plugins]]
|
||||
- [[#prerequisites][Prerequisites]]
|
||||
- [[#lsp-servers][LSP servers]]
|
||||
- [[#irony-server][irony-server]]
|
||||
- [[#macos][MacOS]]
|
||||
- [[#macos][macOS]]
|
||||
- [[#arch-linux][Arch Linux]]
|
||||
- [[#opensuse][openSUSE]]
|
||||
- [[#rtags][rtags]]
|
||||
@@ -56,18 +57,36 @@ This module adds support for the C-family of languages: C, C++, and Objective-C.
|
||||
+ [[https://github.com/Andersbakken/rtags][helm-rtags]]
|
||||
|
||||
* Prerequisites
|
||||
This module requires
|
||||
This module's requirements change depending on how you use it.
|
||||
|
||||
+ irony-server
|
||||
+ rtags
|
||||
+ If =+lsp= is enabled, you need one of *clangd v9+* or *ccls*.
|
||||
+ If =+lsp= is *not* enabled, you need *irony-server* and *rtags*.
|
||||
+ Other features in this module depend on:
|
||||
+ (optional) glslangValidator, for GLSL completion in ~glsl-mode~
|
||||
+ (optional) cmake, for code completion in ~cmake-mode~
|
||||
+ You will need a C/C++ compiler, like =gcc= or =clang=.
|
||||
|
||||
** LSP servers
|
||||
=lsp-mode= and =eglot= support a few LSP servers, but =clangd= and =ccls= are
|
||||
recommended.
|
||||
|
||||
+ clangd (must be v9 or newer) :: Clangd is included with =llvm= which should be
|
||||
available through your OS' package manager.
|
||||
- Debian/Ubuntu: ~sudo apt-get install clangd-9~
|
||||
- macOS: ~brew install llvm~
|
||||
- Windows: install from [[https://releases.llvm.org/download.html][LLVM download page]]
|
||||
- clangd is available on some Linux distros from a =clang-tools= package, if
|
||||
you'd like to avoid the full =llvm=.
|
||||
+ ccls :: Available in many OS' package managers as =ccls=. Otherwise, there are
|
||||
alternative install methods listed [[https://github.com/MaskRay/ccls/wiki/Install][in the project's wiki]].
|
||||
|
||||
** irony-server
|
||||
Irony powers the code completion, eldoc and syntax checking systems.
|
||||
|
||||
After installing its dependencies, run ~M-x irony-install-server~ in Emacs.
|
||||
|
||||
*** MacOS
|
||||
Due to linking issues, MacOS users must compile irony-server manually:
|
||||
*** macOS
|
||||
Due to linking issues, macOS users must compile irony-server manually:
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
brew install cmake
|
||||
@@ -118,12 +137,11 @@ rc -J $PROJECT_ROOT # loads PROJECT_ROOT's compile_commands.json
|
||||
** Project compile settings
|
||||
By default, a set of default compile settings are defined in
|
||||
~+cc-default-compiler-options~ for C, C++ and Objective C. Irony, rtags and
|
||||
flycheck will fall back to these.
|
||||
flycheck will fall back to these. *This variable does nothing for LSP users.*
|
||||
|
||||
To make these tools aware of project specific build settings, you need a JSON
|
||||
[[https://sarcasm.github.io/notes/dev/compilation-database.html#ninja][compilation database]] present (i.e. a ~compile_commands.json~ file).
|
||||
|
||||
There are [[https://sarcasm.github.io/notes/dev/compilation-database.html][many ways to generate one]]. I use [[http://www.cmake.org/][CMake]] or [[https://github.com/rizsotto/Bear][bear]]:
|
||||
For a more universal solution: both LSP servers and irony will recognize a
|
||||
[[https://sarcasm.github.io/notes/dev/compilation-database.html#ninja][compilation database]] (a ~compile_commands.json~ file). There are [[https://sarcasm.github.io/notes/dev/compilation-database.html][many ways to
|
||||
generate one]]. Here is an example using [[http://www.cmake.org/][CMake]] and [[https://github.com/rizsotto/Bear][bear]]:
|
||||
|
||||
#+BEGIN_SRC sh
|
||||
# For CMake projects
|
||||
|
||||
@@ -108,7 +108,12 @@ simpler."
|
||||
(rtags-call-rc :silent t "-J" (or (doom-project-root) default-directory))))
|
||||
;; then irony
|
||||
(when (and (featurep 'irony) irony-mode)
|
||||
(+cc-init-irony-compile-options-h)))
|
||||
(+cc-init-irony-compile-options-h))
|
||||
;; Otherwise, LSP
|
||||
(when (bound-and-true-p lsp-mode)
|
||||
(lsp-workspace-restart))
|
||||
(when (bound-and-true-p eglot-managed-mode)
|
||||
(eglot-reconnect)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +cc/imenu ()
|
||||
|
||||
@@ -51,7 +51,7 @@ This is ignored by ccls.")
|
||||
(set-rotate-patterns! 'c++-mode
|
||||
:symbols '(("public" "protected" "private")
|
||||
("class" "struct")))
|
||||
(set-pretty-symbols! '(c-mode c++-mode)
|
||||
(set-ligatures! '(c-mode c++-mode)
|
||||
;; Functional
|
||||
;; :def "void "
|
||||
;; Types
|
||||
@@ -247,13 +247,13 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e
|
||||
`((:ccls . ((:clang . ,(list :extraArgs ["-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1"
|
||||
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
|
||||
"-isystem/usr/local/include"]
|
||||
:resourceDir (string-trim (shell-command-to-string "clang -print-resource-dir"))))))))))))
|
||||
|
||||
:resourceDir (cdr (doom-call-process "clang" "-print-resource-dir"))))))))))))
|
||||
|
||||
|
||||
(use-package! ccls
|
||||
:when (and (featurep! +lsp) (not (featurep! :tools lsp +eglot)))
|
||||
:after lsp
|
||||
:when (featurep! +lsp)
|
||||
:unless (featurep! :tools lsp +eglot)
|
||||
:after lsp-mode
|
||||
:init
|
||||
(after! projectile
|
||||
(add-to-list 'projectile-globally-ignored-directories ".ccls-cache")
|
||||
@@ -265,4 +265,4 @@ If rtags or rdm aren't available, fail silently instead of throwing a breaking e
|
||||
`(:clang ,(list :extraArgs ["-isystem/Library/Developer/CommandLineTools/usr/include/c++/v1"
|
||||
"-isystem/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include"
|
||||
"-isystem/usr/local/include"]
|
||||
:resourceDir (string-trim (shell-command-to-string "clang -print-resource-dir")))))))
|
||||
:resourceDir (cdr (doom-call-process "clang" "-print-resource-dir")))))))
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
(package! cmake-mode
|
||||
:recipe (:host github :repo "emacsmirror/cmake-mode" :files (:defaults "*"))
|
||||
:pin "bfe85bc009c4778b44e246d5c27d0f888f0bfc0c")
|
||||
:pin "e58c41145a879f0314b2821eada7fd0dc898b6b6")
|
||||
(package! cuda-mode :pin "9ae9eacfdba3559b5456342d0d03296290df8ff5")
|
||||
(package! demangle-mode :pin "697c1dbde93f164eac7ea0dc530d7e8b799272d6")
|
||||
(package! disaster :pin "10a785facc60d89d78e0d5177985ab1af1741bb4")
|
||||
@@ -19,15 +19,15 @@
|
||||
(if (featurep! +lsp)
|
||||
(unless (featurep! :tools lsp +eglot)
|
||||
;; ccls package is necessary only for lsp-mode.
|
||||
(package! ccls :pin "b8e2f4d9b5bed5b5e8b387ac8e43eff723120b80"))
|
||||
(when (package! irony :pin "5f75fc0c9274f4622470e2324e2f4457087aa643")
|
||||
(package! ccls :pin "675a5704c14a27931e835a431beea3631d92e8e6"))
|
||||
(when (package! irony :pin "1e1aabaa686a08767ab33e5cd43ce8f0ebf8d020")
|
||||
(package! irony-eldoc :pin "73e79a89fad982a2ba072f2fcc1b4e41f0aa2978")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-irony :pin "42dbecd4a865cabeb301193bb4d660e26ae3befe"))
|
||||
(when (featurep! :completion company)
|
||||
(package! company-irony :pin "b44711dfce445610c1ffaec4951c6ff3882b216a")
|
||||
(package! company-irony-c-headers :pin "72c386aeb079fb261d9ec02e39211272f76bbd97")))
|
||||
(when (package! rtags :pin "080cb0e6b025b5d3d40fe9f7aecc791c0ea53f36")
|
||||
(when (package! rtags :pin "b57b36039f6411f23009c4ec0315ca5a7adb6824")
|
||||
(when (featurep! :completion ivy)
|
||||
(package! ivy-rtags))
|
||||
(when (featurep! :completion helm)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/clojure/packages.el
|
||||
|
||||
(package! clojure-mode :pin "da9f1ec717dac1194404b4a4562dba6bd9a4ee3a")
|
||||
(package! cider :pin "9e117c2ff34b7a63eee87c8bfa93a800bb94add5")
|
||||
(package! clojure-mode :pin "84ed16c5ddb6561620886485e20669d0c81f88a1")
|
||||
(package! cider :pin "a89b694cc3cec0294d84bf9dbe1163ad2373e8db")
|
||||
(package! clj-refactor :pin "97095682580bbc5bfebcbc5349f03f5bd7121c96")
|
||||
|
||||
(when (featurep! :checkers syntax)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/common-lisp/packages.el
|
||||
|
||||
(package! sly :pin "becf7b72ec6ef1a8165ec796425e143282838a66")
|
||||
(package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
|
||||
(package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048")
|
||||
(when (package! sly :pin "34239bc5954ef41a4db49144925290dc794a6c4d")
|
||||
(package! sly-macrostep :pin "5113e4e926cd752b1d0bcc1508b3ebad5def5fad")
|
||||
(package! sly-repl-ansi-color :pin "b9cd52d1cf927bf7e08582d46ab0bcf1d4fb5048"))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/coq/packages.el
|
||||
|
||||
(package! proof-general :pin "0f0bb2c00fb7b20fd187cb92d4d2c3f84c4c5987")
|
||||
(package! company-coq :pin "7ec80586fa23e2d8caa3f26ad223c803df8abb0f")
|
||||
(package! proof-general :pin "03e427a8f19485e12b2f95387ed3e0bff7cc944c")
|
||||
(package! company-coq :pin "b096cb528de1e0bb31cc1059d0bd698b98a6cc6a")
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
;; a subset of them (defined below).
|
||||
(provide 'smartparens-elixir)
|
||||
:config
|
||||
(set-pretty-symbols! 'elixir-mode
|
||||
(set-ligatures! 'elixir-mode
|
||||
;; Functional
|
||||
:def "def"
|
||||
:lambda "fn"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
;;; lang/elixir/packages.el
|
||||
|
||||
;; +elixir.el
|
||||
(package! elixir-mode :pin "02a3922711b7dc6a25895df6d2bf00360fda45cc")
|
||||
(package! elixir-mode :pin "01b332495d3f44addeb236428041c4ffa0c2ca3b")
|
||||
(package! alchemist :pin "6f99367511ae209f8fe2c990779764bbb4ccb6ed")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-credo :pin "e88f11ead53805c361ec7706e44c3dfee1daa19f"))
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
(set-company-backend! 'elm-mode 'company-elm))
|
||||
|
||||
(set-repl-handler! 'elm-mode #'run-elm-interactive)
|
||||
(set-pretty-symbols! 'elm-mode
|
||||
(set-ligatures! 'elm-mode
|
||||
:null "null"
|
||||
:true "true" :false "false"
|
||||
:int "Int" :str "String"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/elm/packages.el
|
||||
|
||||
(package! elm-mode :pin "7782be0814")
|
||||
(package! elm-mode :pin "363da4b47c9de1ff091a8caf95fccc34188d59a3")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-elm :pin "1b60050efd"))
|
||||
(package! flycheck-elm :pin "1b60050efd4729bfba548f3e5adbcb58436667cb"))
|
||||
|
||||
@@ -33,7 +33,7 @@ employed so that flycheck still does *some* helpful linting.")
|
||||
:definition #'+emacs-lisp-lookup-definition
|
||||
:documentation #'+emacs-lisp-lookup-documentation)
|
||||
(set-docsets! '(emacs-lisp-mode lisp-interaction-mode) "Emacs Lisp")
|
||||
(set-pretty-symbols! 'emacs-lisp-mode :lambda "lambda")
|
||||
(set-ligatures! 'emacs-lisp-mode :lambda "lambda")
|
||||
(set-rotate-patterns! 'emacs-lisp-mode
|
||||
:symbols '(("t" "nil")
|
||||
("let" "let*")
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
(package! macrostep :pin "424e3734a1ee526a1bd7b5c3cd1d3ef19d184267")
|
||||
(package! overseer :pin "02d49f582e80e36b4334c9187801c5ecfb027789")
|
||||
(package! elisp-def :pin "da1f76391ac0d277e3c5758203e0150f6bae0beb")
|
||||
(package! elisp-demos :pin "4cd55a30d5dbd8d36a0e6f87261c4fef17fc6db0")
|
||||
(package! elisp-demos :pin "8c9748134f7c017ae1536dbd0b76434afb52e64d")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-cask :pin "3457ae553c4feaf8168008f063d78fdde8fb5f94"))
|
||||
|
||||
;; Libraries
|
||||
(package! buttercup :pin "e71a40f1ffef4847df28c9d4ad7edc1e360ee52a")
|
||||
(package! buttercup :pin "0e5eae0766a33b5c8997e1477e3914d5c8ba3d29")
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; private/erlang/packages.el
|
||||
;;; lang/erlang/packages.el
|
||||
|
||||
(package! erlang :pin "3065fbf434")
|
||||
(package! erlang :pin "d9bc7858e985143a433953ba286422511b466a0c")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-rebar3 :pin "3cca1268c5"))
|
||||
(package! flycheck-rebar3 :pin "3cca1268c54643204b5bae52e3f0bf5bc921018c"))
|
||||
(unless (featurep! +lsp)
|
||||
(when (featurep! :completion company)
|
||||
(package! company-erlang :pin "bc0524a16f")))
|
||||
(package! company-erlang :pin "bc0524a16f17b66c7397690e4ca0e004f09ea6c5")))
|
||||
|
||||
@@ -32,6 +32,9 @@
|
||||
(set-eval-handler! 'ess-help-mode #'ess-eval-region-and-go)
|
||||
(set-eval-handler! 'ess-r-help-mode #'ess-eval-region-and-go)
|
||||
|
||||
(set-company-backend! 'ess-r-mode
|
||||
'(company-R-args company-R-objects company-dabbrev-code :separate))
|
||||
|
||||
(setq-hook! 'ess-r-mode-hook
|
||||
;; HACK Fix #2233: Doom continues comments on RET, but ess-r-mode doesn't
|
||||
;; have a sane `comment-line-break-function', so...
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/ess/packages.el
|
||||
|
||||
(package! ess :pin "964bf64d8bb3c6dd710cd8f2259921099a50456a")
|
||||
(package! ess :pin "1baf8bf1403fe5956a25475b03be0d8f02b3f3ca")
|
||||
(package! ess-R-data-view :pin "d6e98d3ae1e2a2ea39a56eebcdb73e99d29562e9")
|
||||
(package! polymode :pin "3284ff10017d280ba82f27dc20fe5223b0df709c")
|
||||
(package! poly-R :pin "51ffeb6ec45dd44eafa4d22ad2d6150cc4b248fc")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/factor/packages.el
|
||||
|
||||
(package! fuel :pin "497d6491e6")
|
||||
(package! fuel :pin "3fdb0325ca2a6d80e4111af43b1b166808022020")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/faust/packages.el
|
||||
|
||||
(package! faustine :pin "07a3896311")
|
||||
(package! faustine :pin "07a38963111518f86123802f9d477be0d4689a3f")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/fsharp/packages.el
|
||||
|
||||
(package! fsharp-mode :pin "8c86e38b93")
|
||||
(package! fsharp-mode :pin "3e41fe1391b64eefa66a8a02fce27a12a04e1e01")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;;; lang/haskell/+lsp.el -*- lexical-binding: t; -*-
|
||||
|
||||
(use-package! lsp-haskell
|
||||
:after lsp-clients
|
||||
:after lsp-mode
|
||||
:preface (add-hook 'haskell-mode-local-vars-hook #'lsp!)
|
||||
:config
|
||||
(when IS-MAC
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
(package! haskell-mode :pin "41683c0e634bb3f54eac8747919a82132e1714fe")
|
||||
|
||||
(when (featurep! +dante)
|
||||
(package! dante :pin "7411904bfbde25cdb986e001ec682593dcb7c5e3")
|
||||
(package! dante :pin "c516bc9e8f09e0f928de9a93e82acfb382636f5c")
|
||||
(package! attrap :pin "4cf3e4a16255997e7c3c39682a72866a0a37dd4b"))
|
||||
(when (or (and (featurep! +lsp)
|
||||
(not (featurep! :tools lsp +eglot)))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/hy/packages.el
|
||||
|
||||
(package! hy-mode :pin "e2d5fecdae")
|
||||
(package! hy-mode :pin "55e84cadbdb63427a8d531992df3990414a26688")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/idris/packages.el
|
||||
|
||||
(package! idris-mode :pin "acc8835449")
|
||||
(package! idris-mode :pin "b77eadd8ac2048d5c882b4464bd9673e45dd6a59")
|
||||
|
||||
@@ -2,20 +2,25 @@
|
||||
;;;###if (featurep! +lsp)
|
||||
|
||||
(use-package! lsp-java
|
||||
:after lsp-clients
|
||||
:after lsp-mode
|
||||
:preface
|
||||
(setq lsp-java-workspace-dir (concat doom-etc-dir "java-workspace"))
|
||||
(add-hook 'java-mode-local-vars-hook #'lsp!)
|
||||
(map! :when (featurep! :tools debugger +lsp)
|
||||
:after cc-mode ; where `java-mode' is defined
|
||||
:config
|
||||
(when (featurep! :tools debugger +lsp)
|
||||
(setq lsp-jt-root (concat lsp-java-server-install-dir "java-test/server/")
|
||||
dap-java-test-runner (concat lsp-java-server-install-dir "test-runner/junit-platform-console-standalone.jar"))))
|
||||
|
||||
|
||||
(use-package! dap-java
|
||||
:when (featurep! :tools debugger +lsp)
|
||||
:commands dap-java-run-test-class dap-java-debug-test-class
|
||||
:init
|
||||
(map! :after cc-mode ; where `java-mode' is defined
|
||||
:map java-mode-map
|
||||
:localleader
|
||||
(:prefix ("t" . "Test")
|
||||
:desc "Run test class or method" "t" #'+java/run-test
|
||||
:desc "Run all tests in class" "a" #'dap-java-run-test-class
|
||||
:desc "Debug test class or method" "d" #'+java/debug-test
|
||||
:desc "Debug all tests in class" "D" #'dap-java-debug-test-class))
|
||||
:config
|
||||
(when (featurep! :tools debugger +lsp)
|
||||
(setq lsp-jt-root (concat lsp-java-server-install-dir "java-test/server/")
|
||||
dap-java-test-runner (concat lsp-java-server-install-dir "test-runner/junit-platform-console-standalone.jar"))))
|
||||
:desc "Debug all tests in class" "D" #'dap-java-debug-test-class)))
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
;;; lang/java/packages.el
|
||||
|
||||
(package! android-mode :pin "d5332e339a1f5e30559a53feffb8442ca79265d6")
|
||||
(package! groovy-mode :pin "cafdd98e06a3bbff213f3ccb163de2c42d412b66")
|
||||
(package! groovy-mode :pin "26da902d1158c0312628d57578109be54eca2415")
|
||||
|
||||
(when (featurep! +meghanada)
|
||||
(package! meghanada :pin "e119c7b3271281d60892b80a0cc6488503baf38f"))
|
||||
(package! meghanada :pin "1e41f7f2c7a172e9699f3557c97c3f39a149bfc2"))
|
||||
|
||||
(when (featurep! +eclim)
|
||||
(package! eclim :pin "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100")
|
||||
@@ -13,4 +13,4 @@
|
||||
(package! company-emacs-eclim :pin "222ddd48fcf0ee01592dec77c58e0cf3f2ea1100")))
|
||||
|
||||
(when (featurep! +lsp)
|
||||
(package! lsp-java :pin "811760ad89a29939c28f47d0925f58d9eeea9fa3"))
|
||||
(package! lsp-java :pin "260016236fa0520b5b6ec7f51ca2086288524cba"))
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
"MarionetteJS" "MomentJS" "NodeJS" "PrototypeJS" "React" "RequireJS"
|
||||
"SailsJS" "UnderscoreJS" "VueJS" "ZeptoJS")
|
||||
|
||||
(set-pretty-symbols! '(js2-mode rjsx-mode web-mode)
|
||||
(set-ligatures! '(js2-mode rjsx-mode web-mode)
|
||||
;; Functional
|
||||
:def "function"
|
||||
:lambda "() =>"
|
||||
@@ -95,7 +95,7 @@
|
||||
:config
|
||||
(set-electric! 'typescript-mode
|
||||
:chars '(?\} ?\)) :words '("||" "&&"))
|
||||
(set-pretty-symbols! 'typescript-mode
|
||||
(set-ligatures! 'typescript-mode
|
||||
;; Functional
|
||||
:def "function"
|
||||
:lambda "() =>"
|
||||
@@ -190,8 +190,7 @@ to tide."
|
||||
(set-company-backend! 'tide-mode 'company-tide)
|
||||
;; navigation
|
||||
(set-lookup-handlers! 'tide-mode :async t
|
||||
:definition #'tide-jump-to-definition
|
||||
:references #'tide-references
|
||||
:xref-backend #'xref-tide-xref-backend
|
||||
:documentation #'tide-documentation-at-point)
|
||||
(set-popup-rule! "^\\*tide-documentation" :quit t)
|
||||
;; resolve to `doom-project-root' if `tide-project-root' fails
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
|
||||
;; Major modes
|
||||
(package! coffee-mode :pin "35a41c7d8233eac0b267d9593e67fb8b6235e134")
|
||||
(package! js2-mode :pin "5049e543b52099e6ea3e9bc915fc023d5a9b2644")
|
||||
(package! js2-mode :pin "40aab27581279d0fdbfeb9afeb85f39d401a927f")
|
||||
(package! rjsx-mode :pin "0061587a06cdc2579a8d0e90863498d96bf982d8")
|
||||
(package! typescript-mode :pin "0fc729787007b5111f3584034af0f3ef2389098f")
|
||||
(package! typescript-mode :pin "42a60e5c881082db2ec2c541a5c154308c4863e6")
|
||||
|
||||
;; Tools
|
||||
(package! js2-refactor :pin "d4c40b5fc86d3edd7c6a7d83ac86483ee1cb7a28")
|
||||
@@ -17,6 +17,6 @@
|
||||
(package! skewer-mode :pin "e5bed351939c92a1f788f78398583c2f83f1bb3c")
|
||||
|
||||
;; Programming environment
|
||||
(package! tide :pin "13e7af77b6867ffca6eecc5b3b3b5e315518f49c")
|
||||
(package! tide :pin "fa617f54629dc53a3182251dd8076c9e7ac9effa")
|
||||
(when (featurep! :tools lookup)
|
||||
(package! xref-js2 :pin "6f1ed5dae0c2485416196a51f2fa92f32e4b8262"))
|
||||
|
||||
@@ -12,20 +12,30 @@
|
||||
mode
|
||||
`((,(let ((OR "\\|"))
|
||||
(concat "\\(" ; stolen `matlab.el' operators first
|
||||
"[<>!]=?" OR
|
||||
;; `:` defines a symbol in Julia and must not be highlighted
|
||||
;; as an operator. The only operators that start with `:` are
|
||||
;; `:<` and `::`. This must be defined before `<`.
|
||||
"[:<]:" OR
|
||||
"[<>]=?" OR
|
||||
"\\.[/*^']" OR
|
||||
"===" OR
|
||||
"==" OR
|
||||
"=>" OR
|
||||
"\\<xor\\>" OR
|
||||
"[-+*\\/^&|$]=?" OR ; this has to come before next (updating operators)
|
||||
"[-!^&|*+\\/~:]" OR
|
||||
"[-^&|*+\\/~]" OR
|
||||
;; Julia variables and names can have `!`. Thus, `!` must be
|
||||
;; highlighted as a single operator only in some
|
||||
;; circumstances. However, full support can only be
|
||||
;; implemented by a full parser. Thus, here, we will handle
|
||||
;; only the simple cases.
|
||||
"[[:space:]]!=?=?" OR "^!=?=?" OR
|
||||
;; The other math operators that starts with `!`.
|
||||
;; more extra julia operators follow
|
||||
"[%$]" OR
|
||||
;; bitwise operators
|
||||
">>>" OR ">>" OR "<<" OR
|
||||
">>>=" OR ">>" OR "<<" OR
|
||||
;; comparison
|
||||
"[<>!]=?" OR
|
||||
"\\)"))
|
||||
1 font-lock-type-face)))))
|
||||
|
||||
@@ -57,7 +67,7 @@
|
||||
|
||||
(use-package! lsp-julia
|
||||
:when (featurep! +lsp)
|
||||
:after lsp-clients
|
||||
:after lsp-mode
|
||||
:preface
|
||||
(setq lsp-julia-default-environment "~/.julia/environments/v1.0")
|
||||
(when (featurep! +lsp)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/julia/packages.el
|
||||
|
||||
(package! julia-mode :pin "1c122f1dff")
|
||||
(package! julia-repl :pin "5fa04de4e7")
|
||||
(package! julia-mode :pin "b5f5983d2b232c8bba4c5eff75cccdb787c19d98")
|
||||
(package! julia-repl :pin "d073acb6339e99edf77833f82277afd9a076f16a")
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/kotlin/packages.el
|
||||
|
||||
(package! kotlin-mode :pin "ab61099682")
|
||||
(package! kotlin-mode :pin "8e6dd578f2b3d77ac33b6384d2bfe1b1f6799a1a")
|
||||
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-kotlin :pin "5104ee9a3f"))
|
||||
(package! flycheck-kotlin :pin "5104ee9a3fdb7f0a0a3d3bcfd8dd3c45a9929310"))
|
||||
|
||||
@@ -41,6 +41,7 @@ Provide a helping hand when working with LaTeX documents.
|
||||
** Plugins
|
||||
+ [[http://www.gnu.org/software/auctex/][auctex]]
|
||||
+ [[http://elpa.gnu.org/packages/adaptive-wrap.html][adaptive-wrap]]
|
||||
+ [[https://github.com/iyefrat/evil-tex][evil-tex]] (when =:editor evil +everywhere=)
|
||||
+ [[https://github.com/jsinglet/latex-preview-pane][latex-preview-pane]]
|
||||
+ [[https://github.com/tom-tan/auctex-latexmk][auctex-latexmk]]*
|
||||
+ [[https://github.com/alexeyr/company-auctex][company-auctex]]*
|
||||
|
||||
@@ -205,6 +205,11 @@ Math faces should stay fixed by the mixed-pitch blacklist, this is mostly for
|
||||
(auctex-latexmk-setup))
|
||||
|
||||
|
||||
(use-package! evil-tex
|
||||
:when (featurep! :editor evil +everywhere)
|
||||
:hook (LaTeX-mode . evil-tex-mode))
|
||||
|
||||
|
||||
(use-package! company-auctex
|
||||
:when (featurep! :completion company)
|
||||
:defer t
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/latex/packages.el
|
||||
|
||||
(package! auctex :pin "6abf890a485b2ff734d8f87f38393f9b8f6bbbf6")
|
||||
(package! adaptive-wrap :pin "1810c0ee8d827dd502ddeaae5bd759d4811fcbce")
|
||||
(package! auctex :pin "59e251c4c82d878e605a13aec3752e544a99f21a")
|
||||
(package! adaptive-wrap :pin "319db649fb083db3ad07b4c71ee6c9429497043b")
|
||||
(package! latex-preview-pane :pin "5297668a89996b50b2b62f99cba01cc544dbed2e")
|
||||
(when (featurep! :editor evil +everywhere)
|
||||
(package! evil-tex :pin "06234c9ea4a7ffac91f7b4f3fd683014bb8137af"))
|
||||
|
||||
;; Optional module features:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/lean/packages.el
|
||||
|
||||
(package! lean-mode :pin "65b55b1711")
|
||||
(package! lean-mode :pin "6b4377686128d5c2fb55d8fe61b92a9991d40fbd")
|
||||
|
||||
(when (featurep! :completion company)
|
||||
(package! company-lean :pin "65b55b1711"))
|
||||
(package! company-lean :pin "6b4377686128d5c2fb55d8fe61b92a9991d40fbd"))
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/ledger/packages.el
|
||||
|
||||
(package! ledger-mode :pin "7d78645479")
|
||||
(package! ledger-mode :pin "805507fd6c14839be4efc7aee2017f9c03e36834")
|
||||
|
||||
(when (featurep! :editor evil)
|
||||
(package! evil-ledger :pin "7a9f9f5d39"))
|
||||
(package! evil-ledger :pin "7a9f9f5d39c42fffdba8004f8982642351f2b233"))
|
||||
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-ledger :pin "628e25ba66"))
|
||||
(package! flycheck-ledger :pin "628e25ba66604946085571652a94a54f4d1ad96f"))
|
||||
|
||||
@@ -63,6 +63,10 @@ capture, the end position, and the output buffer.")
|
||||
(sp-local-pair '(markdown-mode gfm-mode) "`" "`"
|
||||
:unless '(:add sp-point-before-word-p sp-point-before-same-p))
|
||||
|
||||
;; Highly rust blocks correctly
|
||||
(when (featurep! :lang rust)
|
||||
(add-to-list 'markdown-code-lang-modes '("rust" . rustic-mode)))
|
||||
|
||||
;; Don't trigger autofill in code blocks (see `auto-fill-mode')
|
||||
(setq-hook! 'markdown-mode-hook
|
||||
fill-nobreak-predicate (cons #'markdown-code-block-at-point-p
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/markdown/packages.el
|
||||
|
||||
(package! markdown-mode :pin "fa9fa20e3236006c2cf278209356f60cc4175120")
|
||||
(package! markdown-mode :pin "ef2cb4d94af68908a4963afa492afba876725128")
|
||||
(package! markdown-toc :pin "9565eeaa1d26bc0ab83eb65bd30470888f724044")
|
||||
(package! edit-indirect :pin "935ded353b9ed3da67bc61abf245c21b58d88864")
|
||||
(package! edit-indirect :pin "bdc8f542fe8430ba55f9a24a7910639d4c434422")
|
||||
|
||||
(when (featurep! +grip)
|
||||
(package! grip-mode :pin "52768a0187f8ce9b42010dc45bbc432551aeccee"))
|
||||
(package! grip-mode :pin "281ada2c93bac7043c6f665fac065a17d4247bdc"))
|
||||
|
||||
(when (featurep! :editor evil +everywhere)
|
||||
(package! evil-markdown
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
;;; lang/nim/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(after! nim-mode
|
||||
(use-package! nim-mode
|
||||
:defer t
|
||||
:init
|
||||
(add-hook! 'nim-mode-hook
|
||||
(defun +nim-init-nimsuggest-mode-h ()
|
||||
"Conditionally load `nimsuggest-mode', instead of clumsily erroring out if
|
||||
@@ -19,9 +21,16 @@ windows."
|
||||
:filter-return #'nimsuggest--get-temp-file-name
|
||||
(replace-regexp-in-string "[꞉* |<>\"?*]" "" path)))
|
||||
|
||||
:config
|
||||
(set-lookup-handlers! '(nim-mode nimsuggest-mode)
|
||||
:definition #'+nimsuggest-find-definition
|
||||
:documentation #'nimsuggest-show-doc)
|
||||
|
||||
(map! :localleader
|
||||
:map nim-mode-map
|
||||
"b" #'nim-compile))
|
||||
"b" #'nim-compile
|
||||
"h" #'nimsuggest-show-doc
|
||||
"d" #'nimsuggest-find-definition))
|
||||
|
||||
|
||||
(use-package! flycheck-nim
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
;;; requires nim nimsuggest nimble
|
||||
|
||||
(package! nim-mode :pin "16a245e497")
|
||||
(package! nim-mode :pin "16a245e4974d21a6e9e7163e7fbfb50a0bd89f99")
|
||||
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-nim :pin "ddfade5100"))
|
||||
(package! flycheck-nim :pin "ddfade51001571c2399f78bcc509e0aa8eb752a4"))
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
(nixos-options-doc-buffer
|
||||
(nixos-options-get-documentation-for-option candidate))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +nix/open-repl ()
|
||||
"Open a nix repl."
|
||||
(interactive)
|
||||
(nix-repl-show)
|
||||
(current-buffer))
|
||||
|
||||
;;;###autoload
|
||||
(defun +nix/lookup-option (&optional initial-input)
|
||||
"Look up documentation on a nix option."
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
:interpreter ("\\(?:cached-\\)?nix-shell" . +nix-shell-init-mode)
|
||||
:mode "\\.nix\\'"
|
||||
:config
|
||||
(set-repl-handler! 'nix-mode #'+nix/open-repl)
|
||||
(set-company-backend! 'nix-mode 'company-nixos-options)
|
||||
(set-lookup-handlers! 'nix-mode
|
||||
:documentation '(+nix/lookup-option :async t))
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/nix/packages.el
|
||||
|
||||
(package! nix-mode :pin "a00b3f776de65b5af7571976a73213ca2a5c683e")
|
||||
(package! nix-mode :pin "0cf1ea1e0ed330b59f47056d927797e625ba8f53")
|
||||
(package! nix-update :pin "fc6c39c2da3fcfa62f4796816c084a6389c8b6e7")
|
||||
|
||||
(when (featurep! :completion company)
|
||||
|
||||
@@ -87,7 +87,7 @@ tools.
|
||||
| =utop-eval-region= | =SPC c e= | evaluate selected region in =utop= |
|
||||
|
||||
** Hacks
|
||||
+ =set-pretty-symbols!= is called with the full tuareg prettify symbol list, this
|
||||
+ =set-ligatures!= is called with the full tuareg prettify symbol list, this
|
||||
can cause columns to change as certain keywords are shortened (e.g. =fun=
|
||||
becomes \lambda.
|
||||
+ =tuareg-opam-update-env= is called the first time =tuareg= is loaded
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
(after! tuareg
|
||||
;; tuareg-mode has the prettify symbols itself
|
||||
(set-pretty-symbols! 'tuareg-mode :alist
|
||||
(set-ligatures! 'tuareg-mode :alist
|
||||
(append tuareg-prettify-symbols-basic-alist
|
||||
tuareg-prettify-symbols-extra-alist))
|
||||
;; harmless if `prettify-symbols-mode' isn't active
|
||||
@@ -20,10 +20,6 @@
|
||||
(setq tuareg-opam-insinuate t)
|
||||
(tuareg-opam-update-env (tuareg-opam-current-compiler))
|
||||
|
||||
;; Spell-check comments
|
||||
(when (featurep! :checkers spell)
|
||||
(add-hook 'tuareg-mode-local-vars-hook #'flyspell-prog-mode))
|
||||
|
||||
(setq-hook! 'tuareg-mode-hook
|
||||
comment-line-break-function #'+ocaml/comment-indent-new-line)
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
(when (featurep! :editor format)
|
||||
(package! ocamlformat
|
||||
:recipe (:host github :repo "ocaml-ppx/ocamlformat" :files ("emacs/*.el"))
|
||||
:pin "27a49cc289dc99cfbe32e90aafc8d9e3cb32a059"))
|
||||
:pin "cd0eaa8bbb7df431276cf65741c53eaa913f7807"))
|
||||
|
||||
(package! dune
|
||||
:recipe (:host github :repo "ocaml/dune" :files ("editor-integration/emacs/*.el"))
|
||||
:pin "66cfb3a2fb5a507f8c58e0ca516bfa20ca14d544")
|
||||
:pin "daea74e5366c8571af8674860a733b0c9e1eaf81")
|
||||
|
||||
@@ -69,7 +69,7 @@ https://www.mfoot.com/blog/2015/11/22/literate-emacs-configuration-with-org-mode
|
||||
+ =+pandoc= Enables pandoc integration into the Org exporter.
|
||||
+ =+pomodoro= Enables a pomodoro timer for clocking time on tasks.
|
||||
+ =+present= Enables integration with reveal.js, beamer and org-tree-slide, so
|
||||
Emacs can be used for presentations.
|
||||
Emacs can be used for presentations. It automatically downloads [[https://github.com/hakimel/reveal.js][reveal.js]].
|
||||
+ =+pretty= Enables pretty unicode symbols for bullets and priorities, and
|
||||
better syntax highlighting for latex. Keep in mind: this can be expensive. If
|
||||
org becomes too slow, it'd be wise to disable this flag.
|
||||
|
||||
@@ -186,8 +186,7 @@ If on a:
|
||||
'done))))
|
||||
;; Update any metadata or inline previews in this subtree
|
||||
(org-update-checkbox-count)
|
||||
(let (org-hierarchical-todo-statistics)
|
||||
(org-update-parent-todo-statistics))
|
||||
(org-update-parent-todo-statistics)
|
||||
(when (and (fboundp 'toc-org-insert-toc)
|
||||
(member "TOC" (org-get-tags)))
|
||||
(toc-org-insert-toc)
|
||||
@@ -411,13 +410,6 @@ Made for `org-tab-first-hook' in evil-mode."
|
||||
(call-interactively #'tab-to-tab-stop)
|
||||
t)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-update-cookies-h ()
|
||||
"Update statistics cookies/todo statistics in headlines."
|
||||
(when (and buffer-file-name (file-exists-p buffer-file-name))
|
||||
(let (org-hierarchical-todo-statistics)
|
||||
(org-update-parent-todo-statistics))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-yas-expand-maybe-h ()
|
||||
"Expand a yasnippet snippet, if trigger exists at point or region is active.
|
||||
@@ -492,5 +484,5 @@ All my (performant) foldings needs are met between this and `org-show-subtree'
|
||||
(defun +org-enable-auto-update-cookies-h ()
|
||||
"Update statistics cookies when saving or exiting insert mode (`evil-mode')."
|
||||
(when (bound-and-true-p evil-local-mode)
|
||||
(add-hook 'evil-insert-state-exit-hook #'+org-update-cookies-h nil t))
|
||||
(add-hook 'before-save-hook #'+org-update-cookies-h nil t))
|
||||
(add-hook 'evil-insert-state-exit-hook #'org-update-parent-todo-statistics nil t))
|
||||
(add-hook 'before-save-hook #'org-update-parent-todo-statistics nil t))
|
||||
|
||||
@@ -109,6 +109,8 @@ Is relative to `org-directory', unless it is absolute. Is used in Doom's default
|
||||
org-hide-leading-stars t
|
||||
org-image-actual-width nil
|
||||
org-imenu-depth 8
|
||||
;; Sub-lists should have different bullets
|
||||
org-list-demote-modify-bullet '(("+" . "-") ("-" . "+") ("*" . "+") ("1." . "a."))
|
||||
org-priority-faces
|
||||
'((?A . error)
|
||||
(?B . warning)
|
||||
@@ -181,7 +183,7 @@ This forces it to read the background before rendering."
|
||||
;; Automatic indent detection in org files is meaningless
|
||||
(add-to-list 'doom-detect-indentation-excluded-modes 'org-mode)
|
||||
|
||||
(set-pretty-symbols! 'org-mode
|
||||
(set-ligatures! 'org-mode
|
||||
:name "#+NAME:"
|
||||
:name "#+name:"
|
||||
:src_block "#+BEGIN_SRC"
|
||||
@@ -224,11 +226,13 @@ This forces it to read the background before rendering."
|
||||
(if (and (eq org-src-window-setup 'switch-invisibly)
|
||||
(functionp initialize))
|
||||
;; org-babel-do-in-edit-buffer is used to execute quick, one-off
|
||||
;; logic in the context of another major mode. Initializing this
|
||||
;; major mode can be terribly expensive (particular its mode
|
||||
;; hooks), so we inhibit them.
|
||||
;; logic in the context of another major mode, but initializing a
|
||||
;; major mode with expensive hooks can be terribly expensive.
|
||||
;; Since Doom adds its most expensive hooks to
|
||||
;; MAJOR-MODE-local-vars-hook, we can savely inhibit those.
|
||||
(lambda ()
|
||||
(quiet! (delay-mode-hooks (funcall initialize))))
|
||||
(let ((doom-inhibit-local-var-hooks t))
|
||||
(funcall initialize)))
|
||||
initialize)
|
||||
args))
|
||||
|
||||
@@ -560,6 +564,7 @@ eldoc string."
|
||||
;; 'python' src blocks.
|
||||
;; TODO Should be reported upstream!
|
||||
(puthash "org" #'ignore org-eldoc-local-functions-cache)
|
||||
(puthash "plantuml" #'ignore org-eldoc-local-functions-cache)
|
||||
(puthash "python" #'python-eldoc-function org-eldoc-local-functions-cache))
|
||||
|
||||
(defun +org--restart-mode-h ()
|
||||
@@ -594,7 +599,10 @@ buffers."
|
||||
(defadvice! +org--exclude-agenda-buffers-from-recentf-a (orig-fn file)
|
||||
"Prevent temporarily opened agenda buffers from polluting recentf."
|
||||
:around #'org-get-agenda-file-buffer
|
||||
(let ((recentf-exclude (list (lambda (_file) t))))
|
||||
(let ((recentf-exclude (list (lambda (_file) t)))
|
||||
(doom-large-file-p t)
|
||||
find-file-hook
|
||||
org-mode-hook)
|
||||
(funcall orig-fn file)))
|
||||
|
||||
;; HACK With https://code.orgmode.org/bzg/org-mode/commit/48da60f4, inline
|
||||
@@ -680,6 +688,7 @@ between the two."
|
||||
"q" #'org-set-tags-command
|
||||
"t" #'org-todo
|
||||
"T" #'org-todo-list
|
||||
"x" #'org-toggle-checkbox
|
||||
(:prefix ("a" . "attachments")
|
||||
"a" #'org-attach
|
||||
"d" #'org-attach-delete-one
|
||||
@@ -696,7 +705,8 @@ between the two."
|
||||
"S" #'org-attach-sync
|
||||
(:when (featurep! +dragndrop)
|
||||
"c" #'org-download-screenshot
|
||||
"y" #'org-download-yank))
|
||||
"p" #'org-download-clipboard
|
||||
"P" #'org-download-yank))
|
||||
(:prefix ("b" . "tables")
|
||||
"-" #'org-table-insert-hline
|
||||
"a" #'org-table-align
|
||||
@@ -953,6 +963,7 @@ compelling reason, so..."
|
||||
(defvar evil-org-special-o/O '(table-row))
|
||||
(defvar evil-org-use-additional-insert t)
|
||||
:config
|
||||
(add-hook 'evil-org-mode-hook #'evil-normalize-keymaps)
|
||||
(evil-org-set-key-theme)
|
||||
(add-hook! 'org-tab-first-hook :append
|
||||
;; Only fold the current tree, rather than recursively
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
org-download-dnd
|
||||
org-download-yank
|
||||
org-download-screenshot
|
||||
org-download-clipboard
|
||||
org-download-dnd-base64
|
||||
:init
|
||||
;; HACK We add these manually so that org-download is truly lazy-loaded
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
(add-to-list 'magic-mode-alist '(+org-journal-p . org-journal-mode))
|
||||
|
||||
(defun +org-journal-p ()
|
||||
"Wrapper around `org-journal-is-journal' to lazy load `org-journal'."
|
||||
(when-let (buffer-file-name (buffer-file-name (buffer-base-buffer)))
|
||||
(if (or (featurep 'org-journal)
|
||||
(and (file-in-directory-p
|
||||
buffer-file-name (expand-file-name org-journal-dir org-directory))
|
||||
(delq! '+org-journal-p magic-mode-alist 'assq)
|
||||
(require 'org-journal nil t)))
|
||||
(org-journal-is-journal))))
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
|
||||
(use-package! org-re-reveal
|
||||
:after ox
|
||||
:init
|
||||
(setq org-re-reveal-root "https://cdnjs.cloudflare.com/ajax/libs/reveal.js/3.9.2"
|
||||
org-re-reveal-revealjs-version "3.8"))
|
||||
:config
|
||||
(setq org-re-reveal-root (expand-file-name "../../" (locate-library "dist/reveal.js" t))
|
||||
org-re-reveal-revealjs-version "4"))
|
||||
|
||||
|
||||
(use-package! org-tree-slide
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/org/packages.el
|
||||
|
||||
;; Prevent built-in Org from playing into the byte-compilation of
|
||||
;; `org-plus-contrib'.
|
||||
(when-let (orglib (locate-library "org" nil doom--initial-load-path))
|
||||
(setq load-path (delete (substring (file-name-directory orglib) 0 -1)
|
||||
load-path)))
|
||||
|
||||
;; HACK A necessary hack because org requires a compilation step after being
|
||||
;; cloned, and during that compilation a org-version.el is generated with
|
||||
;; these two functions, which return the output of a 'git describe ...'
|
||||
@@ -27,13 +21,14 @@
|
||||
:recipe (:host github
|
||||
:repo "emacs-straight/org-mode"
|
||||
:files ("*.el" "lisp/*.el" "contrib/lisp/*.el"))
|
||||
:pin "a1e5bee5cb9c34ceb8226597605a49638bee7cec")
|
||||
;; ...And prevent other packages from pulling org; org-plus-contrib satisfies
|
||||
;; the dependency already: https://github.com/raxod502/straight.el/issues/352
|
||||
(package! org :recipe (:local-repo nil))
|
||||
:pin "220f2b0d93a6927eb673978c0042a1d4673e86aa"
|
||||
;; Prevents built-in Org from sneaking into the byte-compilation of
|
||||
;; `org-plus-contrib', and inform other packages that `org-mode' satisfies the
|
||||
;; `org' dependency: https://github.com/raxod502/straight.el/issues/352
|
||||
:shadow 'org)
|
||||
|
||||
(package! avy)
|
||||
(package! htmlize :pin "86f22f211e9230857197c42a9823d3f05381deed")
|
||||
(package! htmlize :pin "49205105898ba8993b5253beec55d8bddd820a70")
|
||||
(package! org-yt
|
||||
:recipe (:host github :repo "TobiasZawada/org-yt")
|
||||
:pin "40cc1ac76d741055cbefa13860d9f070a7ade001")
|
||||
@@ -52,33 +47,37 @@
|
||||
(when (featurep! +brain)
|
||||
(package! org-brain :pin "671db0e08b91c7d2637d765a7afca8b2561275c8"))
|
||||
(when (featurep! +dragndrop)
|
||||
(package! org-download :pin "768716b6fcc814b06360b99ad70bce44c0eb4a32"))
|
||||
(package! org-download :pin "67b3c744f94cf0bf50f7052ce428e95af5a6ff3f"))
|
||||
(when (featurep! +gnuplot)
|
||||
(package! gnuplot :pin "f0001c30010b2899e36d7d89046322467e923088")
|
||||
(package! gnuplot-mode :pin "601f6392986f0cba332c87678d31ae0d0a496ce7"))
|
||||
(when (featurep! +ipython) ; DEPRECATED
|
||||
(package! ob-ipython :pin "7147455230841744fb5b95dcbe03320313a77124"))
|
||||
(when (featurep! +jupyter)
|
||||
(package! jupyter :pin "785edbbff65abb0c929dc2fbd8b8305c77fd529e"))
|
||||
(package! jupyter :pin "360cae2c70ab28c7a7848c0c56473d984f0243e5"))
|
||||
(when (featurep! +journal)
|
||||
(package! org-journal :pin "a6378dc484ed8df7d2d2f05ac70bd9196aa6f4c0"))
|
||||
(package! org-journal :pin "a2728e25b854af21cea8e8d313714c993eb1c848"))
|
||||
(when (featurep! +noter)
|
||||
(package! org-noter :pin "9ead81d42dd4dd5074782d239b2efddf9b8b7b3d"))
|
||||
(when (featurep! +pomodoro)
|
||||
(package! org-pomodoro :pin "aa07c11318f91219336197e62c47bc7a3d090479"))
|
||||
(when (featurep! +pretty)
|
||||
(package! org-superstar :pin "17481852c1bd09afea877635a3185261fc19fd64")
|
||||
(package! org-superstar :pin "94f35c20f8b84a63defa145e3e6ae735fa33dd5d")
|
||||
(package! org-fancy-priorities :pin "819bb993b71e7253cefef7047306ab4e0f9d0a86"))
|
||||
(when (featurep! +present)
|
||||
(package! centered-window
|
||||
:recipe (:host github :repo "anler/centered-window-mode")
|
||||
:pin "f50859941ab5c7cbeaee410f2d38716252b552ac")
|
||||
(package! org-tree-slide :pin "7126a4365072a32898f169ead8fb59265dabc605")
|
||||
(package! org-re-reveal :pin "c548e239898e97e700f7c1d3f34a148ccbedb820"))
|
||||
(package! org-re-reveal :pin "7fe39d5d03ccc75d2811445d25cbbb473b53de76")
|
||||
(package! revealjs
|
||||
:recipe (:host github :repo "hakimel/reveal.js"
|
||||
:files ("css" "dist" "js" "plugin"))
|
||||
:pin "15815efe05ca69c35ce66cfdbf93316e1db66ecb"))
|
||||
(when (featurep! +roam)
|
||||
(package! org-roam :pin "0aa0a7c05a78e9b29881570604c24381b658fe2a")
|
||||
(package! org-roam :pin "c33867e6bc282ff0a69d4ef4a020db82604039bb")
|
||||
(when (featurep! :completion company)
|
||||
(package! company-org-roam :pin "5d7ccd944519ae1d03f5e17ddfe33dcd8a0cc71e")))
|
||||
(package! company-org-roam :pin "1132663bd68022aa7ea005ff53c7c7571890769d")))
|
||||
|
||||
;;; Babel
|
||||
(package! ob-async :pin "80a30b96a007d419ece12c976a81804ede340311")
|
||||
@@ -107,4 +106,4 @@
|
||||
:recipe (:host github :repo "kaushalmodi/ox-hugo" :nonrecursive t)
|
||||
:pin "75b849e9561c4a6022babf6eaf0e037310ded7c1"))
|
||||
(when (featurep! :lang rst)
|
||||
(package! ox-rst :pin "9158bfd18096c559e0a225ae62ab683f1c98a547"))
|
||||
(package! ox-rst :pin "99fa790da55b57a3f2e9aa187493ba434a64250e"))
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
(set-repl-handler! 'php-mode #'php-boris)
|
||||
(set-lookup-handlers! 'php-mode :documentation #'php-search-documentation)
|
||||
(set-formatter! 'php-mode #'php-cs-fixer-fix)
|
||||
(set-pretty-symbols! 'php-mode
|
||||
(set-ligatures! 'php-mode
|
||||
;; Functional
|
||||
:lambda "function()"
|
||||
:def "function"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
(package! php-extras
|
||||
:recipe (:host github :repo "arnested/php-extras")
|
||||
:pin "81ebd7c1a8c8d02b2775d4cdbf73653feb608a7c")
|
||||
(package! php-mode :pin "4345dfd81fc6da9b7ac123377902b42f5b7b3e0d")
|
||||
(package! php-mode :pin "f4c7c6995dadcdc6da5fefadfd362f8418b2eec1")
|
||||
(package! php-refactor-mode :pin "7a794b0618df2882b1bd586fdd698dba0bc5130d")
|
||||
(package! phpunit :pin "fe6bc91c3bd8b329c6d26ad883a025f06b5121ee")
|
||||
|
||||
@@ -23,4 +23,4 @@
|
||||
(package! php-cs-fixer :pin "95eace9bc0ace128d5166e303c76df2b778c4ddb"))
|
||||
|
||||
;; For building php-extras
|
||||
(package! async :pin "86aef2c38e7d35e8509b7feeee3e989d825eba91")
|
||||
(package! async :pin "36a10151e70e956e2f766ed9e65f4a9cfc8479b2")
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/plantuml/packages.el
|
||||
|
||||
(package! plantuml-mode :pin "ea45a13707")
|
||||
(package! plantuml-mode :pin "5889166b6cfe94a37532ea27fc8de13be2ebfd02")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-plantuml :pin "183be89e1d"))
|
||||
(package! flycheck-plantuml :pin "183be89e1dbba0b38237dd198dff600e0790309d"))
|
||||
|
||||
;; ob-plantuml is provided by org-plus-contrib
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
;;; lang/python/autoload/python.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;;###autoload
|
||||
(defun +python-executable-find (exe)
|
||||
"Resolve the path to the EXE executable.
|
||||
Tries to be aware of your active conda/pipenv/virtualenv environment, before
|
||||
falling back on searching your PATH."
|
||||
(if (file-name-absolute-p exe)
|
||||
(and (file-executable-p exe)
|
||||
exe)
|
||||
(let ((exe-root (format "bin/%s" exe)))
|
||||
(cond ((when python-shell-virtualenv-root
|
||||
(let ((bin (expand-file-name exe-root python-shell-virtualenv-root)))
|
||||
(if (file-exists-p bin) bin))))
|
||||
((when (require 'conda nil t)
|
||||
(let ((bin (expand-file-name (concat conda-env-current-name "/" exe-root)
|
||||
(conda-env-default-location))))
|
||||
(if (file-executable-p bin) bin))))
|
||||
((when-let (bin (projectile-locate-dominating-file default-directory "bin/python"))
|
||||
(setq-local doom-modeline-python-executable (expand-file-name "bin/python" bin))))
|
||||
((executable-find exe))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +python/open-repl ()
|
||||
"Open the Python REPL."
|
||||
@@ -25,8 +45,11 @@
|
||||
"Open an IPython REPL."
|
||||
(interactive)
|
||||
(require 'python)
|
||||
(let ((python-shell-interpreter (or (+python-executable-find "ipython") "ipython"))
|
||||
(python-shell-interpreter-args (string-join +python-ipython-repl-args " ")))
|
||||
(let ((python-shell-interpreter
|
||||
(or (+python-executable-find (car +python-ipython-command))
|
||||
"ipython"))
|
||||
(python-shell-interpreter-args
|
||||
(string-join (cdr +python-ipython-command) " ")))
|
||||
(+python/open-repl)))
|
||||
|
||||
;;;###autoload
|
||||
@@ -35,28 +58,13 @@
|
||||
(interactive)
|
||||
(require 'python)
|
||||
(add-to-list 'python-shell-completion-native-disabled-interpreters "jupyter")
|
||||
(let ((python-shell-interpreter (or (+python-executable-find "jupyter") "jupyter"))
|
||||
(python-shell-interpreter-args (format "console %s" (string-join +python-jupyter-repl-args " "))))
|
||||
(let ((python-shell-interpreter
|
||||
(or (+python-executable-find (car +python-jupyter-command))
|
||||
"jupyter"))
|
||||
(python-shell-interpreter-args
|
||||
(string-join (cdr +python-jupyter-command) " ")))
|
||||
(+python/open-repl)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +python-executable-find (exe)
|
||||
"TODO"
|
||||
(if (file-name-absolute-p exe)
|
||||
(and (file-executable-p exe)
|
||||
exe)
|
||||
(let ((exe-root (format "bin/%s" exe)))
|
||||
(cond ((when python-shell-virtualenv-root
|
||||
(let ((bin (expand-file-name exe-root python-shell-virtualenv-root)))
|
||||
(if (file-exists-p bin) bin))))
|
||||
((when (require 'conda nil t)
|
||||
(let ((bin (expand-file-name (concat conda-env-current-name "/" exe-root)
|
||||
(conda-env-default-location))))
|
||||
(if (file-executable-p bin) bin))))
|
||||
((when-let (bin (projectile-locate-dominating-file default-directory "bin/python"))
|
||||
(setq-local doom-modeline-python-executable (expand-file-name "bin/python" bin))))
|
||||
((executable-find exe))))))
|
||||
|
||||
;;;###autoload
|
||||
(defun +python/optimize-imports ()
|
||||
"organize imports"
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
;;; lang/python/config.el -*- lexical-binding: t; -*-
|
||||
|
||||
(defvar +python-ipython-repl-args '("-i" "--simple-prompt" "--no-color-info")
|
||||
"CLI arguments to initialize ipython with when `+python/open-ipython-repl' is
|
||||
called.")
|
||||
(defvar +python-ipython-command '("ipython" "-i" "--simple-prompt" "--no-color-info")
|
||||
"Command to initialize the ipython REPL for `+python/open-ipython-repl'.")
|
||||
|
||||
(defvar +python-jupyter-repl-args '("--simple-prompt")
|
||||
"CLI arguments to initialize 'jupiter console %s' with when
|
||||
`+python/open-ipython-repl' is called.")
|
||||
(defvar +python-jupyter-command '("jupyter" "console" "--simple-prompt")
|
||||
"Command to initialize the jupyter REPL for `+python/open-jupyter-repl'.")
|
||||
|
||||
(after! projectile
|
||||
(pushnew! projectile-project-root-files "setup.py" "requirements.txt"))
|
||||
@@ -31,7 +29,7 @@ called.")
|
||||
(set-repl-handler! 'python-mode #'+python/open-repl :persist t)
|
||||
(set-docsets! 'python-mode "Python 3" "NumPy" "SciPy")
|
||||
|
||||
(set-pretty-symbols! 'python-mode
|
||||
(set-ligatures! 'python-mode
|
||||
;; Functional
|
||||
:def "def"
|
||||
:lambda "lambda"
|
||||
@@ -247,7 +245,7 @@ called.")
|
||||
(pyenv-mode +1)
|
||||
(when (executable-find "pyenv")
|
||||
(add-to-list 'exec-path (expand-file-name "shims" (or (getenv "PYENV_ROOT") "~/.pyenv"))))
|
||||
(add-hook 'python-mode-hook #'+python-pyenv-mode-set-auto-h)
|
||||
(add-hook 'python-mode-local-vars-hook #'+python-pyenv-mode-set-auto-h)
|
||||
(add-hook 'doom-switch-buffer-hook #'+python-pyenv-mode-set-auto-h))
|
||||
|
||||
|
||||
@@ -311,16 +309,16 @@ called.")
|
||||
;;
|
||||
;;; LSP
|
||||
|
||||
(when! (and (featurep! +lsp)
|
||||
(not (featurep! :tools lsp +eglot)))
|
||||
(eval-when! (and (featurep! +lsp)
|
||||
(not (featurep! :tools lsp +eglot)))
|
||||
|
||||
(use-package! lsp-python-ms
|
||||
:unless (featurep! +pyright)
|
||||
:after lsp-clients
|
||||
:after lsp-mode
|
||||
:preface
|
||||
(after! python
|
||||
(setq lsp-python-ms-python-executable-cmd python-shell-interpreter)))
|
||||
|
||||
(use-package! lsp-pyright
|
||||
:when (featurep! +pyright)
|
||||
:after lsp-clients))
|
||||
:after lsp-mode))
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
;; Major modes
|
||||
(package! pip-requirements :pin "216cd1690f80cc965d4ae47b8753fc185f778ff6")
|
||||
(when (featurep! +cython)
|
||||
(package! cython-mode :pin "0208bf2b71f478779491bf4a63a6b61de3d7269e")
|
||||
(package! cython-mode :pin "fcfd16c7467c31f255287a73f36cf66b32bc096c")
|
||||
(when (featurep! :checkers syntax)
|
||||
(package! flycheck-cython :pin "ecc4454d35ab5317ab66a04406f36f0c1dbc0b76")))
|
||||
|
||||
@@ -12,11 +12,8 @@
|
||||
(when (featurep! +lsp)
|
||||
(unless (featurep! :tools lsp +eglot)
|
||||
(if (featurep! +pyright)
|
||||
(package! lsp-pyright
|
||||
;; REVIEW Remove this when added to melpa
|
||||
:recipe (:host github :repo "emacs-lsp/lsp-pyright")
|
||||
:pin "3cf2e8fc652e35270b1b39aeecc990d4a97de91f")
|
||||
(package! lsp-python-ms :pin "7a502e6c09456cbe8b5f6c64883c79f5ce08e5a9"))))
|
||||
(package! lsp-pyright :pin "9603dda12afaae9c82608c7d3762f98b24b8563f")
|
||||
(package! lsp-python-ms :pin "a884a9a4eb1a3acd3d70c776aec5e968bbdc1731"))))
|
||||
|
||||
;; Programming environment
|
||||
(package! anaconda-mode :pin "73266a48fa964d44268c3f3478597e553b9843f1")
|
||||
@@ -29,7 +26,7 @@
|
||||
(when (featurep! +pyenv)
|
||||
(package! pyenv-mode :pin "d191037fe62ed8d4fee5888845da3e2c386d8e89"))
|
||||
(when (featurep! +conda)
|
||||
(package! conda :pin "9d0213020ff170b17e11b35cad40ac9a8bf30f4c"))
|
||||
(package! conda :pin "9f7eea16e9ad3eb34fe3d1cbd9d6162b8046c2f8"))
|
||||
(when (featurep! +poetry)
|
||||
(package! poetry :pin "22a76cdcba180b4689a6b45c97669e3c76cd36ed"))
|
||||
|
||||
@@ -38,7 +35,7 @@
|
||||
;; REVIEW Remove this when emacsmirror/epkgs updates its emacsattic index
|
||||
:recipe (:host github :repo "emacsattic/nose")
|
||||
:pin "f8528297519eba911696c4e68fa88892de9a7b72")
|
||||
(package! python-pytest :pin "6a3b4e560f26b5b8c9dca5699a3573f554592ac9")
|
||||
(package! python-pytest :pin "fc056faf2757c42641ed94d36a090e56eb13572f")
|
||||
|
||||
;; Import managements
|
||||
(package! pyimport :pin "a6f63cf7ed93f0c0f7c207e6595813966f8852b9")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/qt/packages.el
|
||||
|
||||
(package! qml-mode :pin "6c5f33ba88")
|
||||
(package! qt-pro-mode :pin "7a2da323de")
|
||||
(package! qml-mode :pin "6c5f33ba88ae010bf201a80ee8095e20a724558c")
|
||||
(package! qt-pro-mode :pin "7a2da323de834294b413cbbb3c92f42f54913643")
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
:hook (racket-repl-mode . racket-unicode-input-method-enable)
|
||||
:config
|
||||
(set-repl-handler! 'racket-mode #'+racket/open-repl)
|
||||
(set-lookup-handlers! 'racket-mode
|
||||
(set-lookup-handlers! '(racket-mode racket-repl-mode)
|
||||
:definition #'+racket-lookup-definition
|
||||
:documentation #'+racket-lookup-documentation)
|
||||
(set-docsets! 'racket-mode "Racket")
|
||||
(set-pretty-symbols! 'racket-mode
|
||||
(set-ligatures! 'racket-mode
|
||||
:lambda "lambda"
|
||||
:map "map"
|
||||
:dot ".")
|
||||
@@ -41,8 +41,10 @@
|
||||
(add-hook 'racket-mode-hook #'racket-smart-open-bracket-mode))
|
||||
|
||||
(map! (:map racket-xp-mode-map
|
||||
[remap next-error] #'racket-xp-next-error
|
||||
[remap previous-error] #'racket-xp-previous-error)
|
||||
[remap racket-doc] #'racket-xp-documentation
|
||||
[remap racket-visit-definition] #'racket-xp-visit-definition
|
||||
[remap next-error] #'racket-xp-next-error
|
||||
[remap previous-error] #'racket-xp-previous-error)
|
||||
(:localleader
|
||||
:map racket-mode-map
|
||||
"a" #'racket-align
|
||||
@@ -72,4 +74,18 @@
|
||||
(:prefix ("s" . "send")
|
||||
"d" #'racket-send-definition
|
||||
"e" #'racket-send-last-sexp
|
||||
"r" #'racket-send-region))))
|
||||
"r" #'racket-send-region)
|
||||
:map racket-repl-mode-map
|
||||
"l" #'racket-logger
|
||||
"h" #'racket-repl-documentation
|
||||
"y" #'racket-insert-lambda
|
||||
"u" #'racket-backward-up-list
|
||||
(:prefix ("m" . "macros")
|
||||
"d" #'racket-expand-definition
|
||||
"e" #'racket-expand-last-sexp
|
||||
"f" #'racket-expand-file
|
||||
"r" #'racket-expand-region)
|
||||
(:prefix ("g" . "goto")
|
||||
"b" #'racket-unvisit
|
||||
"m" #'racket-visit-module
|
||||
"d" #'racket-repl-visit-definition))))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/racket/packages.el
|
||||
|
||||
(package! racket-mode :pin "29afd2544a2f14bf29f3e542f6177579d0ae581f")
|
||||
(package! racket-mode :pin "c55fd70c5e9a371f262486f7d5d8837481388b95")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/rest/packages.el
|
||||
|
||||
(package! restclient :pin "e8ca809ace")
|
||||
(package! restclient :pin "ac8aad6c6b9e9d918062fa3c89c22c2f4ec48bc3")
|
||||
(when (featurep! :completion company)
|
||||
(package! company-restclient :pin "e5a3ec54ed"))
|
||||
(package! company-restclient :pin "e5a3ec54edb44776738c13e13e34c85b3085277b"))
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
;; -*- no-byte-compile: t; -*-
|
||||
;;; lang/rst/packages.el
|
||||
|
||||
(package! sphinx-mode :pin "b5ac514e21")
|
||||
(package! sphinx-mode :pin "b5ac514e213459dcc57184086f10b5b6be3cecd8")
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
(package! yard-mode :pin "ba74a47463b0320ae152bd42a7dd7aeecd7b5748")
|
||||
|
||||
;; REPL
|
||||
(package! inf-ruby :pin "f3c927c1b917a20ce6b2228d480db43171aadd9b")
|
||||
(package! inf-ruby :pin "9f0f79ff459c7c417e8931ca020db121e24b45b5")
|
||||
(when (featurep! :completion company)
|
||||
(package! company-inf-ruby :pin "fe3e4863bc971fbb81edad447efad5795ead1b17"))
|
||||
|
||||
|
||||
@@ -10,9 +10,11 @@
|
||||
- [[#hacks][Hacks]]
|
||||
- [[#prerequisites][Prerequisites]]
|
||||
- [[#features][Features]]
|
||||
- [[#lsp-support-rls-or-rust-analyzer][LSP support (rls or rust-analyzer)]]
|
||||
- [[#format-on-save][Format on save]]
|
||||
- [[#keybinds][Keybinds]]
|
||||
- [[#configuration][Configuration]]
|
||||
- [[#enable-rust-analyzer][Enable rust-analyzer]]
|
||||
- [[#enable-rls-by-default][Enable RLS by default]]
|
||||
- [[#enabling-elgot-support-for-rust][Enabling elgot support for Rust]]
|
||||
- [[#troubleshooting][Troubleshooting]]
|
||||
|
||||
@@ -20,13 +22,14 @@
|
||||
This module adds support for the Rust language and integration for its tools,
|
||||
e.g. ~cargo~.
|
||||
|
||||
+ Code completion (~racer~)
|
||||
+ Syntax checking (~flycheck~)
|
||||
+ LSP support (for rls and rust-analyzer) (~rustic~)
|
||||
+ Code completion (=racer= or an LSP server)
|
||||
+ Syntax checking (=flycheck=)
|
||||
+ LSP support (for rust-analyzer and rls) (=rustic=)
|
||||
+ Snippets
|
||||
|
||||
** Module Flags
|
||||
+ ~+lsp~ to add support Language server protocol.
|
||||
+ ~+lsp~ to add support Language server protocol. Will use the first of
|
||||
=rust-analyzer= or =rls= (in that order).
|
||||
|
||||
** Plugins
|
||||
+ [[https://github.com/brotzeit/rustic][rustic]]
|
||||
@@ -34,28 +37,38 @@ e.g. ~cargo~.
|
||||
|
||||
** Hacks
|
||||
+ rustic has been modified /not/ to automatically install lsp-mode or elgot if
|
||||
they're missing. Doom expects you to enable the =:tools lsp= module yourself.
|
||||
+ rustic's LSP integration has been disabled in favor of the rls/rust-analyzer
|
||||
support provider by the lsp-mode package.
|
||||
they're missing. Doom expects you to have enabled the =:tools lsp= module
|
||||
yourself.
|
||||
|
||||
* Prerequisites
|
||||
This module only requires ~rust~, which can be acquired through =rustup=:
|
||||
This module requires ~rust~, which can be acquired through =rustup=:
|
||||
|
||||
~curl https://sh.rustup.rs -sSf | sh~
|
||||
|
||||
Optionally, this module also uses the following programs:
|
||||
Additional requirements depend on the module's configuration:
|
||||
|
||||
+ =racer= (if not using LSP): ~cargo +nightly install racer~ (requires rust nightly)
|
||||
+ =RLS= or =rust-analyzer= (for LSP users)
|
||||
+ =rustfmt= for ~:editor format~: ~rustup component add rustfmt-preview~
|
||||
+ The following commands require:
|
||||
+ If =:editor format= is enabled, you'll need =rustfmt=: ~rustup component add
|
||||
rustfmt-preview~.
|
||||
+ Users without =+lsp= enabled will need =racer=: ~cargo +nightly install racer~
|
||||
(with requires rust nightly edition).
|
||||
+ Users with =+lsp= enabled will need:
|
||||
+ =rust-analyzer= or =rls=
|
||||
+ To use The following commands require:
|
||||
+ ~cargo-process-check~: ~cargo install cargo-check~
|
||||
+ ~cargo-process-clippy~: ~rustup component add clippy-preview~
|
||||
|
||||
* Features
|
||||
This module also supports LSP, if you have [[https://github.com/rust-lang/rls][the Rust Language Server]] or
|
||||
[[https://github.com/rust-analyzer/rust-analyzer][rust-analyzer]] installed. To enable it, you must enable the =:tools lsp= module
|
||||
and the ~+lsp~ flag on this module.
|
||||
** LSP support (rls or rust-analyzer)
|
||||
This module supports LSP integration. For it to work you'll need:
|
||||
|
||||
1. Either [[https://github.com/rust-analyzer/rust-analyzer][rust-analyzer]] or [[https://github.com/rust-lang/rls][the Rust Language Server]] installed (e.g. through your
|
||||
OS package manager).
|
||||
2. The =:tools lsp= module enabled.
|
||||
3. The ~+lsp~ flag on this module enabled.
|
||||
|
||||
** Format on save
|
||||
Enable the [[file:../../../modules/editor/format/README.org][:editor format]] module's =+onsave= flag to get formatting on save with
|
||||
rustfmt. No additional configuration is necessary.
|
||||
|
||||
** Keybinds
|
||||
| Binding | Description |
|
||||
@@ -73,23 +86,18 @@ and the ~+lsp~ flag on this module.
|
||||
| ~<localleader> t t~ | ~run current test~ |
|
||||
|
||||
* TODO Configuration
|
||||
** Enable rust-analyzer
|
||||
You'll need [[https://github.com/rust-analyzer/rust-analyzer][rust-analyzer]] installed on your system, then use the following:
|
||||
|
||||
#+BEGIN_SRC elisp
|
||||
;; in $DOOMDIR/config.el
|
||||
(setq rustic-lsp-server 'rust-analyzer)
|
||||
#+END_SRC
|
||||
|
||||
** Enabling elgot support for Rust
|
||||
Doom doesn't have eglot support (yet), but if you've installed it yourself and
|
||||
want rust to use eglot instead of LSP, use the following:
|
||||
** Enable RLS by default
|
||||
If both =rls= and =rust-analyzer= are present on your system, =rust-analyzer= is
|
||||
selected by default. Modify ~rustic-lsp-server~ to change the default:
|
||||
|
||||
#+BEGIN_SRC elisp
|
||||
;; in $DOOMDIR/config.el
|
||||
(after! rustic
|
||||
(setq rustic-lsp-server 'rust-analyzer ; optional
|
||||
rustic-lsp-client 'eglot))
|
||||
(setq rustic-lsp-server 'rls))
|
||||
#+END_SRC
|
||||
|
||||
** Enabling elgot support for Rust
|
||||
Doom's =:tools lsp= module has an =+eglot= flag. Enable it and this module will
|
||||
use eglot instead.
|
||||
|
||||
* TODO Troubleshooting
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user