Compare commits
8 Commits
b94d6d0309
...
e13d144293
| Author | SHA1 | Date | |
|---|---|---|---|
|
e13d144293
|
|||
|
370980c320
|
|||
|
537ec62fae
|
|||
|
6239775fe8
|
|||
|
a206f952f9
|
|||
|
f6dbe82f18
|
|||
|
42dfafd536
|
|||
|
71e7bdec0c
|
@@ -173,53 +173,6 @@ I also have two main shell-related functions, prefixed with ~as~.
|
|||||||
| yr | treemacs-copy-relative-path-at-point | | treemacs |
|
| yr | treemacs-copy-relative-path-at-point | | treemacs |
|
||||||
| yf | treemacs-copy-file | | treemacs |
|
| yf | treemacs-copy-file | | treemacs |
|
||||||
|
|
||||||
*** Treemacs
|
|
||||||
#+name: keybindings-treemacs
|
|
||||||
| Key | Function | Description | Package |
|
|
||||||
|-----+----------------------------------------+-------------+----------|
|
|
||||||
| | | treemacs | |
|
|
||||||
| c | | create | |
|
|
||||||
| cd | treemacs-create-dir | | treemacs |
|
|
||||||
| cf | treemacs-create-file | | treemacs |
|
|
||||||
| ci | treemacs-create-icon | | treemacs |
|
|
||||||
| ct | treemacs-create-theme | | treemacs |
|
|
||||||
| cw | treemacs-create-workspace | | treemacs |
|
|
||||||
| d | treemacs-delete-file | | treemacs |
|
|
||||||
| f | | files | |
|
|
||||||
| ff | treemacs-find-file | | treemacs |
|
|
||||||
| ft | treemacs-find-tag | | treemacs |
|
|
||||||
| l | | lsp | |
|
|
||||||
| ls | treemacs-expand-lsp-symbol | | treemacs |
|
|
||||||
| ld | treemacs-expand-lsp-treemacs-deps | | treemacs |
|
|
||||||
| lD | treemacs-collapse-lsp-treemacs-deps | | treemacs |
|
|
||||||
| lS | treemacs-collapse-lsp-symbol | | treemacs |
|
|
||||||
| p | | projects | |
|
|
||||||
| pa | treemacs-add-project-to-workspace | | treemacs |
|
|
||||||
| pf | treemacs-project-follow-mode | | treemacs |
|
|
||||||
| pn | treemacs-project-of-node | | treemacs |
|
|
||||||
| pp | treemacs-project-at-point | | treemacs |
|
|
||||||
| pr | treemacs-remove-project-from-workspace | | treemacs |
|
|
||||||
| pt | treemacs-move-project-down | | treemacs |
|
|
||||||
| ps | treemacs-move-project-up | | treemacs |
|
|
||||||
| r | | rename | |
|
|
||||||
| rf | treemacs-rename-file | | treemacs |
|
|
||||||
| rp | treemacs-rename-project | | treemacs |
|
|
||||||
| rr | treemacs-rename | | treemacs |
|
|
||||||
| rw | treemacs-rename-workspace | | treemacs |
|
|
||||||
| t | treemacs | | treemacs |
|
|
||||||
| T | | toggles | |
|
|
||||||
| Td | treemacs-toggle-show-dotfiles | | treemacs |
|
|
||||||
| Tn | treemacs-toggle-node | | treemacs |
|
|
||||||
| v | | visit node | |
|
|
||||||
| va | treemacs-visit-node-ace | | treemacs |
|
|
||||||
| vc | treemacs-visit-node-close-treemacs | | treemacs |
|
|
||||||
| vn | treemacs-visit-node-default | | treemacs |
|
|
||||||
| y | | yank | |
|
|
||||||
| ya | treemacs-copy-absolute-path-at-point | | treemacs |
|
|
||||||
| yp | treemacs-copy-project-path-at-point | | treemacs |
|
|
||||||
| yr | treemacs-copy-relative-path-at-point | | treemacs |
|
|
||||||
| yf | treemacs-copy-file | | treemacs |
|
|
||||||
|
|
||||||
** Buffers
|
** Buffers
|
||||||
My buffer-related keybindings are all prefixed by ~b~.
|
My buffer-related keybindings are all prefixed by ~b~.
|
||||||
#+name: keybindings-buffers
|
#+name: keybindings-buffers
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
((claude-code-ide-terminal-backend 'eat)
|
((claude-code-ide-terminal-backend 'eat)
|
||||||
(claude-code-ide-enable-mcp-server t))
|
(claude-code-ide-enable-mcp-server t))
|
||||||
:config
|
:config
|
||||||
|
(setopt claude-code-ide-cli-path "claude-jj")
|
||||||
(claude-code-ide-emacs-tools-setup))
|
(claude-code-ide-emacs-tools-setup))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@@ -62,6 +63,48 @@ tool to have when you know what you’re doing.
|
|||||||
:files ("*.el")))
|
:files ("*.el")))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Ellama
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package ellama
|
||||||
|
:ensure t
|
||||||
|
:bind ("C-c e" . ellama)
|
||||||
|
:hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message)
|
||||||
|
:init
|
||||||
|
(require 'llm-ollama)
|
||||||
|
(setopt ellama-provider
|
||||||
|
(make-llm-ollama :chat-model "gemma3:27b"
|
||||||
|
:embedding-model "nomic-embed-text"
|
||||||
|
:default-chat-non-standard-params `(("num_ctx" . ,(* 8 1024)))))
|
||||||
|
(setopt ellama-summarization-provider
|
||||||
|
(make-llm-ollama :chat-model "qwen2.5:8b"
|
||||||
|
:embedding-model "nomic-embed-text"
|
||||||
|
:default-chat-non-standard-params `(("num_ctx" . ,(* 16 1024)))))
|
||||||
|
(setopt ellama-coding-provider
|
||||||
|
(make-llm-ollama :chat-model "gpt-oss:20b"
|
||||||
|
:embedding-model "nomic-embed-text"
|
||||||
|
:default-chat-non-standard-params `(("num_ctx" . ,(* 8 1024)))))
|
||||||
|
(setopt ellama-providers
|
||||||
|
'(("deepseek-coder" . (make-llm-ollama :chat-model "deepseek-coder:6.7b"
|
||||||
|
:embedding-model "nomic-embed-text"))
|
||||||
|
("qwen2.5-coder" . (make-llm-ollama :chat-model "qwen2.5-coder:1.5b"
|
||||||
|
:embedding-model "nomic-embed-text"))
|
||||||
|
("qwen3-coder" . (make-llm-ollama :chat-model "qwen3-coder:30b"
|
||||||
|
:embedding-model "nomic-embed-text"))
|
||||||
|
("qwen3-vl" . (make-llm-ollama :chat-model "qwen3-vl:30b"
|
||||||
|
:embedding-model "nomic-embed-text"))))
|
||||||
|
(setopt ellama-naming-provider (make-llm-ollama :chat-model "phi3:mini-4k"
|
||||||
|
:embedding-model "nomic-embed-text"))
|
||||||
|
(setopt ellama-naming-scheme 'ellama-generate-name-by-llm)
|
||||||
|
(setopt ellama-chat-display-action-function #'display-buffer-full-frame)
|
||||||
|
(setopt ellama-instant-display-action-function #'display-buffer-at-bottom)
|
||||||
|
(setopt ellama-auto-scroll t)
|
||||||
|
:config
|
||||||
|
(ellama-context-header-line-global-mode +1)
|
||||||
|
(ellama-session-header-line-global-mode +1)
|
||||||
|
(advice-add 'pixel-scroll-precision :before #'ellama-disable-scroll)
|
||||||
|
(advice-add 'end-of-buffer :after #'ellama-enable-scroll))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Bitwarden
|
** Bitwarden
|
||||||
This package is still a very much work in progress one I’m developing
|
This package is still a very much work in progress one I’m developing
|
||||||
in order to interact with Bitwarden in Emacs with the help of the
|
in order to interact with Bitwarden in Emacs with the help of the
|
||||||
@@ -594,7 +637,7 @@ simple inbox, outbox and all. Actually, four of my bookmarks have a
|
|||||||
couple of filtering:
|
couple of filtering:
|
||||||
- anything in my inbox linked to my university
|
- anything in my inbox linked to my university
|
||||||
- the [[https://emacs-doctor.com/lists/listinfo][emacs-doctor mailing list]] (French Emacs mailing list)
|
- the [[https://emacs-doctor.com/lists/listinfo][emacs-doctor mailing list]] (French Emacs mailing list)
|
||||||
- emails related to my internship
|
- emails related to my job
|
||||||
- and my inbox for any mail not caught by any of these filters
|
- and my inbox for any mail not caught by any of these filters
|
||||||
And all of them will have the requirement not to display any trashed
|
And all of them will have the requirement not to display any trashed
|
||||||
email. Actually, all of my bookmarks will have this requirement,
|
email. Actually, all of my bookmarks will have this requirement,
|
||||||
@@ -640,17 +683,6 @@ Paris 8 (my university).
|
|||||||
#+RESULTS[083992a66ea6339d3a55773108e520a6024102c5]: mu4e-bookmarks-filter-uni
|
#+RESULTS[083992a66ea6339d3a55773108e520a6024102c5]: mu4e-bookmarks-filter-uni
|
||||||
: f:/.*up8\.edu|.*univ-paris8.*/ OR c:/.*up8\.edu|.*univ-paris8.*/ OR t:/.*up8\.edu|.*univ-paris8.*/ OR maildir:/Univ/Inbox OR maildir:/Univ/Junk
|
: f:/.*up8\.edu|.*univ-paris8.*/ OR c:/.*up8\.edu|.*univ-paris8.*/ OR t:/.*up8\.edu|.*univ-paris8.*/ OR maildir:/Univ/Inbox OR maildir:/Univ/Junk
|
||||||
|
|
||||||
Next I need an inbox dedicated to the association I’m part of.
|
|
||||||
#+name: mu4e-bookmarks-filter-asso
|
|
||||||
#+header: :tangle no :cache yes
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(let ((regex "/.*supran\\.fr/"))
|
|
||||||
<<mu4e-bookmarks-from-copy-to-gen>>)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+RESULTS[e04566a9d56624e063b3dd4e2c639e87cf9683aa]: mu4e-bookmarks-filter-asso
|
|
||||||
: f:/.*supran\.fr/ OR c:/.*supran\.fr/ OR t:/.*supran\.fr/
|
|
||||||
|
|
||||||
As for the Emacs-doctor list, I need to match both the current, modern
|
As for the Emacs-doctor list, I need to match both the current, modern
|
||||||
mailing list address but also its old address. The same applies for
|
mailing list address but also its old address. The same applies for
|
||||||
the emacs-devel mailing list as well as GitHub emails related to my
|
the emacs-devel mailing list as well as GitHub emails related to my
|
||||||
@@ -696,7 +728,7 @@ more general development topics, including issues and PRs from GitHub.
|
|||||||
#+RESULTS[673f76e7a682ed64f98dbe6d4a06810436ba6799]: mu4e-bookmarks-filter-github-list
|
#+RESULTS[673f76e7a682ed64f98dbe6d4a06810436ba6799]: mu4e-bookmarks-filter-github-list
|
||||||
: list:/.*\.github\.com/ OR t:/.*\.github\.com/ OR f:/.*\.github\.com/ OR contact:/.*\.github\.com/ OR list:/.*\.gitlab\.com/ OR t:/.*\.gitlab\.com/ OR f:/.*\.gitlab\.com/ OR contact:/.*\.gitlab\.com/ OR list:stumpwm-devel@nongnu.org OR t:stumpwm-devel@nongnu.org OR f:stumpwm-devel@nongnu.org OR contact:stumpwm-devel@nongnu.org OR list:/.*sr\.ht/ OR t:/.*sr\.ht/ OR f:/.*sr\.ht/ OR contact:/.*sr\.ht/ AND NOT ( list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/ )
|
: list:/.*\.github\.com/ OR t:/.*\.github\.com/ OR f:/.*\.github\.com/ OR contact:/.*\.github\.com/ OR list:/.*\.gitlab\.com/ OR t:/.*\.gitlab\.com/ OR f:/.*\.gitlab\.com/ OR contact:/.*\.gitlab\.com/ OR list:stumpwm-devel@nongnu.org OR t:stumpwm-devel@nongnu.org OR f:stumpwm-devel@nongnu.org OR contact:stumpwm-devel@nongnu.org OR list:/.*sr\.ht/ OR t:/.*sr\.ht/ OR f:/.*sr\.ht/ OR contact:/.*sr\.ht/ AND NOT ( list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/ )
|
||||||
|
|
||||||
When it comes to my internship, all emails will contain an address containing ~aubay.com~ (that’s where my internship takes place).
|
When it comes to my job, all emails will contain an address containing ~aubay.com~ (that’s where my internship takes place).
|
||||||
- ~/.*aubay.com/~
|
- ~/.*aubay.com/~
|
||||||
|
|
||||||
#+name: mu4e-bookmarks-filter-aubay
|
#+name: mu4e-bookmarks-filter-aubay
|
||||||
@@ -734,7 +766,6 @@ And for the last string-generating code, let’s describe my main inbox:
|
|||||||
(cons "<<mu4e-bookmarks-default-filter()>>"
|
(cons "<<mu4e-bookmarks-default-filter()>>"
|
||||||
`(,(format "(%s)"
|
`(,(format "(%s)"
|
||||||
<<mu4e-bookmarks-filter-aubay>>)
|
<<mu4e-bookmarks-filter-aubay>>)
|
||||||
,(format "(%s)" "<<mu4e-bookmarks-filter-asso()>>")
|
|
||||||
,(format "(%s)"
|
,(format "(%s)"
|
||||||
<<mu4e-bookmarks-filter-emacs-list>>)
|
<<mu4e-bookmarks-filter-emacs-list>>)
|
||||||
,(format "(%s)"
|
,(format "(%s)"
|
||||||
@@ -744,8 +775,8 @@ And for the last string-generating code, let’s describe my main inbox:
|
|||||||
" AND NOT ")
|
" AND NOT ")
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+RESULTS[94290b02a0da24cffeba43e1d47395e801bc0158]: mu4e-bookmarks-inbox-filters
|
#+RESULTS[bcdff5943898f52a55d2e0c124b85fb157983d2f]: mu4e-bookmarks-inbox-filters
|
||||||
: NOT flag:trashed AND (maildir:/Inbox OR maildir:/Junk) AND NOT (f:/.*aubay\.com/ OR c:/.*aubay\.com/ OR t:/.*aubay\.com/) AND NOT (f:/.*supran.fr/ OR c:/.*supran.fr/ OR t:/.*supran.fr/) AND NOT (list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/) AND NOT (list:/.*\.github\.com/ OR t:/.*\.github\.com/ OR f:/.*\.github\.com/ OR contact:/.*\.github\.com/ OR list:/.*\.gitlab\.com/ OR t:/.*\.gitlab\.com/ OR f:/.*\.gitlab\.com/ OR contact:/.*\.gitlab\.com/ OR list:stumpwm-devel@nongnu.org OR t:stumpwm-devel@nongnu.org OR f:stumpwm-devel@nongnu.org OR contact:stumpwm-devel@nongnu.org OR list:/.*sr\.ht/ OR t:/.*sr\.ht/ OR f:/.*sr\.ht/ OR contact:/.*sr\.ht/ AND NOT ( list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/ )) AND NOT (f:/.*up8\.edu|.*univ-paris8.*/ OR c:/.*up8\.edu|.*univ-paris8.*/ OR t:/.*up8\.edu|.*univ-paris8.*/ OR maildir:/Univ/Inbox OR maildir:/Univ/Junk)
|
: NOT flag:trashed AND (maildir:/Inbox OR maildir:/Junk) AND NOT (f:/.*aubay\.com/ OR c:/.*aubay\.com/ OR t:/.*aubay\.com/) AND NOT (list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/) AND NOT (list:/.*\.github\.com/ OR t:/.*\.github\.com/ OR f:/.*\.github\.com/ OR contact:/.*\.github\.com/ OR list:/.*\.gitlab\.com/ OR t:/.*\.gitlab\.com/ OR f:/.*\.gitlab\.com/ OR contact:/.*\.gitlab\.com/ OR list:stumpwm-devel@nongnu.org OR t:stumpwm-devel@nongnu.org OR f:stumpwm-devel@nongnu.org OR contact:stumpwm-devel@nongnu.org OR list:/.*sr\.ht/ OR t:/.*sr\.ht/ OR f:/.*sr\.ht/ OR contact:/.*sr\.ht/ AND NOT ( list:/ateliers.*emacs.*/ OR t:/ateliers.*emacs.*/ OR f:/ateliers.*emacs.*/ OR contact:/ateliers.*emacs.*/ OR list:/emacs-.*@gnu.org/ OR t:/emacs-.*@gnu.org/ OR f:/emacs-.*@gnu.org/ OR contact:/emacs-.*@gnu.org/ OR list:/.*eshell-info-banner.*/ OR t:/.*eshell-info-banner.*/ OR f:/.*eshell-info-banner.*/ OR contact:/.*eshell-info-banner.*/ OR list:/.*emacsfr.*/ OR t:/.*emacsfr.*/ OR f:/.*emacsfr.*/ OR contact:/.*emacsfr.*/ )) AND NOT (f:/.*up8\.edu|.*univ-paris8.*/ OR c:/.*up8\.edu|.*univ-paris8.*/ OR t:/.*up8\.edu|.*univ-paris8.*/ OR maildir:/Univ/Inbox OR maildir:/Univ/Junk)
|
||||||
|
|
||||||
We can finally define our bookmarks! The code reads as follows:
|
We can finally define our bookmarks! The code reads as follows:
|
||||||
#+name: mu4e-bookmarks
|
#+name: mu4e-bookmarks
|
||||||
@@ -755,7 +786,7 @@ We can finally define our bookmarks! The code reads as follows:
|
|||||||
:key ?i
|
:key ?i
|
||||||
:query ,(format "%s"
|
:query ,(format "%s"
|
||||||
<<mu4e-bookmarks-inbox-filters>>))
|
<<mu4e-bookmarks-inbox-filters>>))
|
||||||
(:name "Internship"
|
(:name "Aubay"
|
||||||
:key ?a
|
:key ?a
|
||||||
:query ,(format "(%s) AND (%s)"
|
:query ,(format "(%s) AND (%s)"
|
||||||
"<<mu4e-bookmarks-default-filter()>>"
|
"<<mu4e-bookmarks-default-filter()>>"
|
||||||
@@ -775,11 +806,6 @@ We can finally define our bookmarks! The code reads as follows:
|
|||||||
:query ,(format "%s AND %s"
|
:query ,(format "%s AND %s"
|
||||||
"<<mu4e-bookmarks-default-filter()>>"
|
"<<mu4e-bookmarks-default-filter()>>"
|
||||||
<<mu4e-bookmarks-filter-emacs-list>>))
|
<<mu4e-bookmarks-filter-emacs-list>>))
|
||||||
(:name "Supran"
|
|
||||||
:key ?s
|
|
||||||
:query ,(format "%s AND %s"
|
|
||||||
"<<mu4e-bookmarks-default-filter()>>"
|
|
||||||
"<<mu4e-bookmarks-filter-asso()>>"))
|
|
||||||
(:name "Sent" :key ?S :query "maildir:/Sent OR maildir:/Univ/Sent")
|
(:name "Sent" :key ?S :query "maildir:/Sent OR maildir:/Univ/Sent")
|
||||||
(:name "All Unread" :key ?U :query "flag:unread AND NOT flag:trashed")
|
(:name "All Unread" :key ?U :query "flag:unread AND NOT flag:trashed")
|
||||||
(:name "Today" :key ?t :query "date:today..now AND NOT flag:trashed")
|
(:name "Today" :key ?t :query "date:today..now AND NOT flag:trashed")
|
||||||
@@ -1414,6 +1440,12 @@ writing my commit messages.
|
|||||||
:init (add-to-list 'auto-mode-alist '("\\.jjdescription\\'" . jjdescription-mode)))
|
:init (add-to-list 'auto-mode-alist '("\\.jjdescription\\'" . jjdescription-mode)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
And I want Emacs to know that any directory which has a =.jj= repository
|
||||||
|
is the root of a project.
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(add-to-list 'project-vc-extra-root-markers ".jj")
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Magit
|
*** Magit
|
||||||
Magit is an awesome wrapper around Git for Emacs! Very often, I go
|
Magit is an awesome wrapper around Git for Emacs! Very often, I go
|
||||||
from disliking to really hating Git GUI clients because they often
|
from disliking to really hating Git GUI clients because they often
|
||||||
|
|||||||
@@ -60,6 +60,16 @@ enough for me.
|
|||||||
:straight (:build t))
|
:straight (:build t))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Evil Surround
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package evil-surround
|
||||||
|
:straight (:build t)
|
||||||
|
:after evil
|
||||||
|
:config
|
||||||
|
(add-to-list 'evil-surround-pairs-alist '(?$ . ("${" . "}")))
|
||||||
|
(global-evil-surround-mode 1))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Iedit
|
** Iedit
|
||||||
Iedit is a powerful text editing tool that can be used to refactor
|
Iedit is a powerful text editing tool that can be used to refactor
|
||||||
code through the edition of multiple regions at once, be it in a
|
code through the edition of multiple regions at once, be it in a
|
||||||
|
|||||||
@@ -705,7 +705,8 @@ default packages:
|
|||||||
("AUTO" "polyglossia" nil ("xelatex" "lualatex"))
|
("AUTO" "polyglossia" nil ("xelatex" "lualatex"))
|
||||||
("capitalize" "cleveref")
|
("capitalize" "cleveref")
|
||||||
("" "booktabs")
|
("" "booktabs")
|
||||||
("" "tabularx")))
|
("" "tabularx")
|
||||||
|
("" "amssymb")))
|
||||||
(add-to-list 'org-latex-default-packages-alist package t))
|
(add-to-list 'org-latex-default-packages-alist package t))
|
||||||
|
|
||||||
(setq org-latex-reference-command "\\cref{%s}")
|
(setq org-latex-reference-command "\\cref{%s}")
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ variables to install grammars for different languages.
|
|||||||
(use-package treesit-fold
|
(use-package treesit-fold
|
||||||
:after tree-sitter
|
:after tree-sitter
|
||||||
:straight (:build t :host github :repo "emacs-tree-sitter/treesit-fold")
|
:straight (:build t :host github :repo "emacs-tree-sitter/treesit-fold")
|
||||||
:config (treesit-fold-mode))
|
:init (global-treesit-fold-mode t))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** Appwrite
|
*** Appwrite
|
||||||
@@ -313,14 +313,6 @@ DSLs, or /Domain Specific Languages/, are languages dedicated to some
|
|||||||
very tasks, such as configuration languages or non-general programming
|
very tasks, such as configuration languages or non-general programming
|
||||||
such as SQL.
|
such as SQL.
|
||||||
|
|
||||||
*** Makefiles
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(defun my/local-tab-indent ()
|
|
||||||
(setq-local indent-tabs-mode 1))
|
|
||||||
|
|
||||||
(add-hook 'makefile-mode-hook #'my/local-tab-indent)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Caddy
|
*** Caddy
|
||||||
[[https://caddyserver.com/][Caddy]] (or /Caddyserver/) is a web server akin to Nginx or Apache which I
|
[[https://caddyserver.com/][Caddy]] (or /Caddyserver/) is a web server akin to Nginx or Apache which I
|
||||||
find much easier to configure that the latter two, plus it has
|
find much easier to configure that the latter two, plus it has
|
||||||
@@ -401,6 +393,19 @@ And finally, let’s enable some Eldoc integration for CMake.
|
|||||||
"yt" #'csv-yank-as-new-table))
|
"yt" #'csv-yank-as-new-table))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Cucumber
|
||||||
|
[[https://cucumber.io/][Cucumber]] is a library that lets you write =.feature= files for
|
||||||
|
Behaviour-Driven Development, or /BDD/. Although not much configuration
|
||||||
|
is required to use it in Emacs, we do need to install =feature-mode= to
|
||||||
|
support the Gherkin syntax in =.feature= files.
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package feature-mode
|
||||||
|
:defer t
|
||||||
|
:straight (:build t)
|
||||||
|
:mode (("\\.feature\\'" . feature-mode)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Dotenv
|
*** Dotenv
|
||||||
It is not rare to encounter a dotenv file, that is, a file with either
|
It is not rare to encounter a dotenv file, that is, a file with either
|
||||||
the ~.env~ extension or simply called ~.env~. They contain environment
|
the ~.env~ extension or simply called ~.env~. They contain environment
|
||||||
@@ -457,6 +462,14 @@ visual graphs and networks.
|
|||||||
(setq graphviz-dot-indent-width 4))
|
(setq graphviz-dot-indent-width 4))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Makefiles
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun my/local-tab-indent ()
|
||||||
|
(setq-local indent-tabs-mode 1))
|
||||||
|
|
||||||
|
(add-hook 'makefile-mode-hook #'my/local-tab-indent)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Markdown
|
*** Markdown
|
||||||
Yes, I love org-mode and I largely prefer to use it instead of
|
Yes, I love org-mode and I largely prefer to use it instead of
|
||||||
Markdown due to its far superior power and abilities. But still,
|
Markdown due to its far superior power and abilities. But still,
|
||||||
|
|||||||
Reference in New Issue
Block a user