Commit Graph

137 Commits

Author SHA1 Message Date
Henrik Lissner
4418c80c95 fix(syntax): disable checker in non-project elisp files
CVE-2024-53920 describes an arbitrary code execution vulnerability
during macro expansion, which occurs during byte-compilation or when
evaluating macro calls in uncompiled elisp files.

Flycheck and flymake use byte-compilation to lint elisp files, exposing
users to this vulnerability. This commit attempts to protect users from
this by disabling both in elisp files that aren't part of a
project (because, presumably, untrusted elisp won't live in a project).
What a "project" is depends on your projectile settings, but generally
means a file that lives in a version controlled directory and/or a
directory containing a recognizable project root marker (like a
packages.json or Cargo.toml file).

This heuristic won't catch cases of untrusted elisp living within
legitimate projects, or the case where the user's $HOME is a project and
*all* their elisp files live under it, but there are already too many
ways to shoot yourself in the foot with Emacs to begin with, and
disabling fly(check|make) altogether stands a higher chance of making
people blindly re-enable them to "work around" the fact it's not
"working as expected", bringing them back to square one.

Anyhow, long story short, don't open elisp files you don't trust in
Emacs, mkay?

Ref: CVE-2024-53920
2024-12-05 16:25:54 -05:00
Henrik Lissner
448bc5cae2 refactor: use negated flags
Ref: 7a806521a92c
2024-10-20 02:41:50 -04:00
Henrik Lissner
037b018cdd feat: add .doommodule files
These optional dotfiles indicate the root of a module or module
group (:lang), and will later contain module metadata. They will also
serve as an alternative to packages.el and doctor.el, and will aide the
parts of the v3.0 module API concerned with resolving the current module
from a path (`doom-module-from-path`), which currently rely too heavily
on parsing path strings.

For now, however, they're simply placeholders.
2024-09-14 20:47:39 -04:00
Henrik Lissner
40d67ab573 fix(spell): fail gracefully on missing ispell-program-name
Instead of stopping things dead with a hard error, emit a more readable
warning, instead.
2024-09-10 21:52:51 -04:00
Henrik Lissner
be8a1244f2 bump: flymake-popon
https://codeberg.org/akib/emacs-flymake-popon@HEAD -> doomelpa/flymake-popon@99ea813346

- Switched to a pinned, Github mirror for flymake-popon, for stability's
  sake.
- Indirectly fixes Straight unable to fetch from a codeberg url with
  :host set to nil or 'codeberg (see #8035).

Fix: #8035
Close: #8034
2024-08-31 13:49:16 -04:00
Henrik Lissner
e7a5164893 refactor(syntax): remove popen package! statement
popen is a dependency of flymake-popen, and is on nongnu-elpa, which
wasn't supported by straight until recently, so the package! statement
is no longer needed.

Ref: 71469d8056
2024-08-15 23:07:54 -04:00
Prashant Vithani
b9f1d5d261 tweak(syntax): use close-circle-outline icon for errors
The same is used by doom-modeline to show flycheck errors.

Ref: 1505c13564/doom-modeline-segments.el (L818)
2024-07-12 15:44:50 -04:00
Prashant Vithani
af0dcdcd94 bump: :checkers syntax
flycheck/flycheck@02148c6ce7 -> flycheck/flycheck@e8d1472aea
2024-07-12 15:44:50 -04:00
Henrik Lissner
c8b5bf7bd1 feat(flycheck): add +icons flag
Close: #7814
Co-authored-by: Dev380 <Dev380@users.noreply.github.com>
2024-07-10 20:35:30 -04:00
Henrik Lissner
7761eea6aa fix(spell): initialize ispell fully
Fix: #4483
2024-07-02 02:16:22 -04:00
Henrik Lissner
a189c211bf tweak(syntax): hide posframe on next user input
Close: #7813
Ref: #6416
Co-authored-by: Dev380 <Dev380@users.noreply.github.com>
2024-06-30 16:15:43 -04:00
Henrik Lissner
fdeb856210 fix(spell): spell-fu: remove unneeded advice
These issues were addressed upstream.

Ref: emacsmirror/spell-fu@50be652a6e
Ref: emacsmirror/spell-fu@00af362af3
2024-04-11 21:27:09 -04:00
Henrik Lissner
96e3255c33 nit: reformat+revise comments
Includes minor refactors to appease the byte-compiler or use more
succinct (but equivalent) syntax.
2024-04-09 12:39:51 -04:00
Henrik Lissner
6756911721 fix(syntax): flycheck popups clearing active region
Moving the cursor over a flycheck-highlighted error will display the
error message in a popup. Displaying that popup could clear the active
selection (#7242), which is disruptive. This only affected non-Evil
users and users not using the module's +childframe flag, but should no
longer affect anyone after this commit.

Fix: #7242
Ref: flycheck/flycheck-popup-tip#14
2024-04-07 16:47:36 -04:00
Henrik Lissner
bea81278fd bump: :checkers syntax
flycheck/flycheck@e56e30d8c6 -> flycheck/flycheck@02148c6ce7

Close: #7680
Co-authored-by: vitallium <vitallium@users.noreply.github.com>
2024-03-05 01:21:09 -05:00
Henrik Lissner
183ab38926 bump: spell-fu
https://codeberg.org/ideasman42/emacs-spell-fu@e4031935803c -> emacsmirror/spell-fu@e403193580

codeberg has uptime issues. Where possible, we should prefer Github
sources.

Ref: #7013
2024-03-04 03:29:42 -05:00
Henrik Lissner
659f7bfc71 refactor!: deprecate IS-* OS constants
BREAKING CHANGE: This deprecates the IS-(MAC|WINDOWS|LINUX|BSD) family
of global constants in favor of a native `featurep` check:

  IS-MAC      ->  (featurep :system 'macos)
  IS-WINDOWS  ->  (featurep :system 'windows)
  IS-LINUX    ->  (featurep :system 'linux)
  IS-BSD      ->  (featurep :system 'bsd)

The constants will stick around until the v3 release so folks can still
use it -- and there are still some modules that use it, but I'll phase
those uses out gradually.

Fix: #7479
2024-02-04 17:54:29 -05:00
Henrik Lissner
d55b078fa1 bump: :checkers
alexmurray/flycheck-posframe@8f60c9bf12 -> alexmurray/flycheck-posframe@19896b922c
bnbeckwith/writegood-mode@ed42d918d9 -> bnbeckwith/writegood-mode@d54eadeedb
d12frosted/flyspell-correct@7d7b6b0118 -> d12frosted/flyspell-correct@1e7a5a5636
flycheck/flycheck@784f184cdd -> flycheck/flycheck@e56e30d8c6
ideasman42/emacs-spell-fu@aed6e87aa3 -> ideasman42/emacs-spell-fu@e403193580
mhayashi1120/Emacs-langtool@8276eccc55 -> mhayashi1120/Emacs-langtool@d86101eafe
2023-11-29 23:14:10 -05:00
Henrik Lissner
88bb045388 docs(*): replace all-the-icons with nerd-icons
Also colorizes the leading icon in notices.
2023-09-16 20:19:11 +02:00
Jeetaditya Chatterjee
24601b300e fix(syntax): s/postframe/posframe 2023-08-07 20:34:53 +02:00
Jeetaditya Chatterjee
6c6cf955e7 fix(syntax): s/use-package/use-package! 2023-08-07 20:34:53 +02:00
Jeetaditya Chatterjee
90b1b221fe docs(syntax): add flymake flag 2023-07-26 23:31:38 +02:00
Jeetaditya Chatterjee
3d7e61fdcd nit(syntax): note recipes can be removed soon
when straight is bumped to support non gnu elpa
2023-07-25 00:11:10 +01:00
Jeetaditya Chatterjee
1cae082d66 feat(syntax): add flymake configuration 2023-07-24 23:51:40 +01:00
Henrik Lissner
d883863b91 bump: :checkers spell
d12frosted/flyspell-correct@e9fde6f93a -> d12frosted/flyspell-correct@7d7b6b0118
ideasman42/emacs-spell-fu@8185467b24 -> ideasman42/emacs-spell-fu@aed6e87aa3

- Includes spell-fu 0.4, which improves Windows support, among other
  issues.

Ref: #4009
Close: #7115
Co-authored-by: mnick <mnick@users.noreply.github.com>
2023-03-20 20:42:36 -04:00
Huynh Tan
fb2de71dce docs(spell): mention possible mismatch in ispell-personal-dictionary
Ref: #6246
2023-02-23 23:15:15 -05:00
Henrik Lissner
7cc946a74b docs(grammar): document nixpkgs.languagetool
Close: #6959
Co-authored-by: venikx <venikx@users.noreply.github.com>
2023-02-23 01:34:55 -05:00
Henrik Lissner
552278655e fix(grammar): look for languagetool-commandline executable
nixpkgs.languagetool names its executable languagetool-commandline.

Ref: https://github.com/NixOS/nixpkgs/blob/nixos-22.11/pkgs/tools/text/languagetool/default.nix#L20
Close: #6959
Co-authored-by: venikx <venikx@users.noreply.github.com>
2023-02-23 01:34:55 -05:00
TEC
5ac2a5258b docs: change link format 2022-10-05 01:01:19 +02:00
Haisheng
57e99650d3 fix(grammar): use languagetool in $PATH, if available 2022-10-03 18:33:28 +02:00
Henrik Lissner
aa54383b5d refactor: deprecate doom-etc-dir for doom-data-dir
doom-etc-dir will be renamed to doom-data-dir, to better reflect its
purpose, and align it with XDG_DATA_HOME (where it will be moved to in
v3, where Doom will begin to obey XDG directory conventions more
closely).
2022-08-14 20:43:35 +02:00
Henrik Lissner
ad6a3d0f33 refactor: deprecate featurep! for modulep!
featurep! will be renamed modulep! in the future, so it's been
deprecated. They have identical interfaces, and can be replaced without
issue.

featurep! was never quite the right name for this macro. It implied that
it had some connection to featurep, which it doesn't (only that it was
similar in purpose; still, Doom modules are not features). To undo such
implications and be consistent with its namespace (and since we're
heading into a storm of breaking changes with the v3 release anyway),
now was the best opportunity to begin the transition.
2022-08-14 20:43:35 +02:00
Henrik Lissner
057e6c531c refactor: replace doom-enlist with ensure-list
doom-enlist is now a deprecated alias for ensure-list, which is built
into Emacs 28.1+ and is its drop-in replacement. We've already
backported it for 27.x users in doom-lib (in 4bf4978).

Ref: 4bf49785fd
2022-08-07 19:43:13 +02:00
Henrik Lissner
1abcf913aa revert: fix(docs): set mode in file-local vars
emacs-straight/org-mode@e22b4eb7aa introduced a breaking change that
made it impossible to rely on .dir-locals.el to change org-mode buffers
in $EMACSDIR to doom-docs-org-mode (without infinite recursion), so we
used file-local variables in 7e400ab.

emacs-straight/org-mode@215de6176b reverted that change, so we can use
.dir-locals.el again, and this is my preference, since it requires less
boilerplate across our hundreds of org files.

Ref: emacs-straight/org-mode@215de6176b
Ref: emacs-straight/org-mode@e22b4eb7aa
Revert: 7e400abdc0
2022-08-07 19:08:07 +02:00
Henrik Lissner
1f8bf7accb merge: rewrite-docs
I've omitted docs/*.org from this merge, as there is still work left to
do there, but I am pushing the module docs early so folks can benefit
from the new docs sooner.
2022-08-03 03:27:50 +02:00
Henrik Lissner
7e400abdc0 fix(docs): set mode in file-local vars
Due to emacs-straight/org-mode@e22b4eb, a replacement major mode (for
org-mode) can no longer be specified from .dir-locals.el, as it spirals
into infinite recursion. Therefore, a mode: line is needed in all Doom
docs.

Ref: emacs-straight/org-mode@e22b4eb7aa
2022-08-03 02:46:33 +02:00
Henrik Lissner
1255315bfc refactor(docs): replace nav menus with virtual one
Now that the header is dynamically generated (when doom-docs-mode is
active), a literal header is unnecessary.
2022-08-02 19:37:07 +02:00
Henrik Lissner
e77a45bc22 docs: use lowercase keywords
As per Org's new defaults, which we're adopting elsewhere, so may as
well adopt it here.
2022-08-02 16:23:43 +02:00
Artem Smaznov
3ac5d6d51a docs(spell): can't add word to personal dict
Adding `Cannot add [word] to any active dictionary` error to the
troubleshooting section.

I have had this problem multiple times now when I break my emacs and
wipe the `~/.config/emacs` directory and I can never remember what file
to create to get my spell check working properly.

Even though this is a bug and might be fixed in the future, I feel like
having it documented can be helpful in the short term and in the future.

Ref: #6246
2022-06-21 18:30:20 +02:00
TEC
9e0c188b5c tweak(spell): ignore org-inline-src-block
Also fix the alphabetic sorting of org-cite while I'm at it.
2022-05-27 03:00:45 +02:00
Henrik Lissner
d1e8a389db bump: :checkers spell
ideasman42/emacs-spell-fu@10823ae58f -> ideasman42/emacs-spell-fu@8185467b24
d12frosted/flyspell-correct@00357953a7 -> d12frosted/flyspell-correct@e9fde6f93a

- spell-fu added multiple dictionary support (see #6136)

Close: #6136
Co-authored-by: Samuel Tschiedel <mukaobr@gmail.com>
2022-02-23 15:23:14 +01:00
Henrik Lissner
b7841e3659 fix(spell): disable flyspell-lazy in message-mode
Without this, flyspell is never started in these buffer (e.g. when
composing mail w/ Notmuch).

Fix: #3357
2022-02-10 21:07:20 +01:00
Henrik Lissner
7246db457c docs: replace doom-source with doom-repo links
I will later use "source" to refer to module sources, so better we avoid
the terminology for now.
2022-02-01 18:55:27 +01:00
Henrik Lissner
b37d8481ce tweak(spell): remove RET keybind for +spell/correct
z= and M-$ are available. RET on arbitrary misspellings make DWIM
commands in text modes unpredictable, like org and markdown.
2022-01-03 16:51:51 +01:00
Dominik Schrempf
af7c1d79bd fix(grammar): writegood-mode in LaTeX-mode
Did I already mention that this `latex-mode` slash `LaTeX-mode`
ambiguity was a reeeeeeally bad decision upstream? Anyways, this very
small PR also loads `writegood-mode` with AucTeX, which uses
`LaTeX-mode`, and not `latex-mode`.
2021-12-18 01:13:37 +01:00
Henrik Lissner
3d28ecf07a feat(spell): don't spellcheck in org citations 2021-11-25 01:22:57 +01:00
Henrik Lissner
88844e9cec docs: simplify internal docs links
Fewer links means less confusion.

- Merge doom-issue and doom-commit links into doom-ref (for auto-linking
  Issue/PR/commit references).
- Merge doom-module-source and doom-docs-source links into doom-source.
- Rename doom-report-issue to doom-report.
- Use '!' as the icon for module issues link.
- Remove doom-repo (replaced with "doom:*" in :lang org module).
- Add doomdir and emacsdir links to :lang org module.
2021-11-21 20:04:28 +01:00
Henrik Lissner
1decc38237 docs: fix module readme CREATED & SINCE attrs
Some were missing PR references, others had incorrect values for SINCE
and CREATED attributes. Also corrects the capitalization in some
SUBTITLEs.
2021-11-21 20:04:28 +01:00
Henrik Lissner
b898fbe303 docs(:checkers): update READMEs to new format 2021-11-21 20:04:28 +01:00
Henrik Lissner
df62fcba26 docs: add category readmes 2021-11-21 20:04:28 +01:00