Commit Graph

20164 Commits

Author SHA1 Message Date
Henrik Lissner
7280e44dc5 fix(beancount): link completion
Due to not escaping the literal ^ in the regexp.

Fix: #8414
Amend: d3e8ca8d9d
2025-06-10 21:28:52 +02:00
Cash Prokop-Weaver
ed860b2b06 feat(eww): Add jump-to-heading in EWW
1. Add jump-to-heading functionality for EWW buffers
2. Bind within imenu (replaces +eww/jump-to-url-on-page; bound to
`:localleader l`)

The new functions are based on existing `eww--capture-url-on-page` and
`+eww/jump-to-url-on-page`. However, I took a different approach and
used alists to hide the position/coordinates from the `completing-read`.
Also, unlike `+eww/jump-to-url-on-page`, we don't give the user an
option of limiting the scope to a region or visible portion of the
buffer. `+eww/jump-to-heading-on-page` always prompts based on the
entire buffer.

Examples:

1. `<h1>H1</h1>`
    - "H1"
2. `<h1>H1</h1><h2>H2</h2>`
    - "H1"
    - "H1/h2"
3. `<h1>H1</h1><h2>H2</h2><h3>H3</h3>`
    - "H1"
    - "H1/H2"
    - "H1/H2/H3"
4. `<h1>H1-1</h1><h2>H2</h2><h1>H1-2</h1>`
    - "H1-1"
    - "H1-1/H2"
    - "H1-2"

![screenshot on the Emacs Wikipedia entry](https://github.com/user-attachments/assets/c2210f0f-c026-4325-9b1b-c2427ec13cd5)

Gaps in the hierarchy (for example a `<h2>` followed by an `<h5>`) are not
represented in the labels presented to the user. Take the Wikipedia
entry for Emacs (above) as an example. The `<h2>` "Content" is the first
heading on the page, there's no preceeding `<h1>`, so it's shown to the
user as "Content" without any prefix. Examples:

1. `<h2>H2</h2>`
    - "H2"
2. `<h2>H2</h2><h4>H4</h4>`
    - "H2"
    - "H2/H4"
3. `<h2>H2</h2><h4>H4</h4><h5>H5</h5>`
    - "H2"
    - "H2/H4"
    - "H2/H4/H5"
4. `<h2>H2</h2><h1>H1</h1><h5>H5</h5>`
    - "H2"
    - "H1"
    - "H1/H5"

- modules/emacs/eww/autoload.el
  - (eww--capture-url-on-page): Rename to `eww--capture-urls-on-page`
  - (eww--capture-headings-on-page): Add; based on existing `eww--capture-urls-on-page`
  - (+eww/jump-to-heading-on-page): Add; based on existing `+eww/jump-to-url-on-page`
- modules/emacs/eww/config.el
  - (keybind) Bind `+eww/jump-to-heading-on-page` to `<:localleader.>`;
    based on existing org-mode jump-to-heading keybind (`consult-org-heading`)
2025-06-10 21:23:31 +02:00
Jaume Delclòs Coll
d60d639efe fix(magit): Remove +magit-optimize-process-calls-h 2025-06-10 21:23:00 +02:00
Henrik Lissner
313e8fb48b fix(smooth-scroll): advice on wrong function
Amend: aa6f3903d5
Fix: #8376
2025-06-02 17:34:15 +02:00
Henrik Lissner
6ce4ba3d18 release(modules): 25.07.0-dev
Ref: 2b39e41368
2025-06-02 14:19:26 +02:00
Henrik Lissner
aa6f3903d5 fix(smooth-scroll): potential out-of-bounds error
Wherever an interactive motion command (that good-scroll has advised) is
used programmatically.

This should be addressed upstream. Either by adding
boundary/called-interactively guards to
`good-scroll--point-at-top-fix-a`, or by avoiding interactive motion
commands in ledger-mode.

Fix: #8376
2025-06-02 14:19:26 +02:00
Henrik Lissner
c1632fa887 fix(debugger): don't persist breakpoints
Leave it to users to implement this, if they want this, but not only
might it cause confusion, but users may want a clean slate every time
they launch a new debugging session in the same project.

Fix: #8407
2025-06-02 14:19:26 +02:00
Fabian Schweinfurth
50a2ba0586 fix(format): eglot format scratch buffer 2025-06-02 14:18:25 +02:00
Fabian Schweinfurth
4ca742a281 fix(format): lsp format scratch buffer
Apheleia wants the formatters to act on the `scratch` buffer
complains if `buffer` was modified.

Fix: #8182
2025-06-02 14:18:25 +02:00
Marcel Ilg
f71cbb9f5c docs(hl-todo): Remove removed keybinding
Commit 0893edefae removed magit-todos and
the "SPC p t" keybinding. The documentation of hl-todo does not reflect
this change.

This commit removes said keybinding from hl-todos documentation.
2025-06-01 00:45:34 +02:00
duli
361eec11a4 fix(workspaces): avoid duplicate workspace creation when no frame exists
When Emacs is started as a daemon and no frames exist, `emacsclient -c`
should simply switch to the main workspace. However, before
`+workspaces-associate-frame-fn` is called, the new frame is already
added to the frame list, which causes `persp-frame-list-without-daemon`
to always return a non-empty list. A new workspace will be created
instead of switching to the main one.
2025-06-01 00:45:04 +02:00
fdeitylink
24aec7cd2b fix(coq): void-function company-coq 2025-06-01 00:44:13 +02:00
Henrik Lissner
6a6ac8f315 fix(eshell): disable undo while process is executing
After further experimentation these will be replaced with named
functions.
2025-06-01 00:26:56 +02:00
Henrik Lissner
96ac6b0037 fix(beancount): completion edge cases
Like when `+beancount/clone-transaction` is invoked from an org-capture
template.
2025-05-30 20:54:27 +02:00
Henrik Lissner
4d685029f9 perf(beancount): speed up flymake checker advice 2025-05-29 20:36:07 +02:00
Henrik Lissner
8667b181fc feat(beancount): add account completion on budget directives 2025-05-27 20:41:57 +02:00
Henrik Lissner
0199727de5 fix(beancount): relax prefix on virtual lines
Before, virtual includes were only followed if preceded by three
semicolons. Only one should do.
2025-05-24 20:09:19 +02:00
Henrik Lissner
8406c1ff22 feat(beancount): highlight custom directives
Doesn't seem to be done by beancount-mode, so...
2025-05-24 17:32:27 +02:00
Henrik Lissner
5026de65bb refactor(beancount): don't complete commodities from prices
Auto-generates price files are a common feature among beancount users;
scanning them is a lot of unnecessary work when just reading commodity
directives (and operating_currency options) should be more than enough.

Amend: 5df769e994
2025-05-24 17:31:41 +02:00
Henrik Lissner
5b37bfee23 feat(nix): add treesit support 2025-05-24 17:27:30 +02:00
Henrik Lissner
9acc5f48b6 feat(zig): add treesit support 2025-05-24 17:27:11 +02:00
Henrik Lissner
3b2caa7dcd feat(docker): add treesit support 2025-05-24 17:11:40 +02:00
Henrik Lissner
cfea950e60 fix(beancount): hangs when completion cache is empty 2025-05-22 21:17:12 +02:00
Henrik Lissner
5df769e994 feat(beancount): add commodity/currency completion
Was supposed to be part of d3e8ca8. Now completes commodities/currencies
from declared commidities, operating_currency options, or price
directives. Currently only works in postings, but can be later extended
to complete in price directives and operating_currency options.

Amend: d3e8ca8d9d
2025-05-22 21:15:57 +02:00
Henrik Lissner
7af7280f9e feat(json): add treesit support 2025-05-22 19:53:10 +02:00
Henrik Lissner
f5a1af4bf6 feat(kotlin): add treesit support 2025-05-22 19:50:29 +02:00
Henrik Lissner
c5dd2847ff feat(scala): add treesit support 2025-05-22 19:50:29 +02:00
Henrik Lissner
5db361b474 fix(tree-sitter): remove redundant yaml source
Amend: 2556cb58f2
2025-05-22 18:32:04 +02:00
Henrik Lissner
0c311a5172 feat(elixir): add treesit support 2025-05-22 18:32:03 +02:00
Henrik Lissner
7f8b24d1b8 fix(beancount): enhance +beancount/clone-{,this-}transaction
- `+beancount/clone-transaction` now completes for all transactions
  across this and any included files (depending on the value of
  `+beancount-files`).
- Handles an edge case where `+beancount/clone-this-transaction` would
  try and fail to clone a transaction at point where there wasn't any.
2025-05-22 16:39:20 +02:00
Henrik Lissner
c22bb498e5 fix(lib): doom-print-minimum-level: type error if level is undefined 2025-05-22 16:33:33 +02:00
Henrik Lissner
d3e8ca8d9d feat(beancount): enhance completion across the board
Enhances completion for beancount-mode in the following ways:

1. Adds completion for:
   - Event directives and values,
   - The payee field in transactions,
   - Currencies and commodities,
2. Fixes completion for #tag and ^links not working at the end of a
   transaction's heading.
3. Completion now scans not only the current file, but any included
   files (recursively) for candidates if `+beancount-files' is set to
   `auto`. It can otherwise be set to a list of static files or set to
   `nil` (reverts to only scanning the current buffer). This applies not
   only to completion-at-point functions, but also interactive commands
   like `beancount-insert-account'.

This is all very rudimentary and needs polish!
2025-05-22 16:33:23 +02:00
Henrik Lissner
a02871ba83 feat(beancount): support lines only read by linter
Adds support for meta lines that only the flymake linter will see.
These are lines prefixed by any number of semicolons followed by a hash
then space. E.g.

;# include "../config.beancount"
;# 2025-01-01 pad Assets:Bank Equity:Opening-Balances

This is useful for silencing the linter in multi-file beancount projects
rather than suffer the usual deluge of multiple-include errors and
redundancies.
2025-05-22 16:33:23 +02:00
Henrik Lissner
8627117d63 feat(beancount): activate on *.bean files too 2025-05-22 16:33:23 +02:00
Henrik Lissner
b173fedaff refactor(beancount): move autoloads to sub-directory 2025-05-22 16:33:23 +02:00
Henrik Lissner
5d13d6ce99 fix(lib): doom-file-cookie: what argument-less cookies return
Used to be that a ;;;###COOKIE with no argument would return NULL-VALUE.
No more, it will now return `t`.

Also corrects the docstring to properly reflect what this does.
2025-05-22 16:33:22 +02:00
Henrik Lissner
11b4b8d2e5 revert: transient
magit/transient@HEAD -> magit/transient@25b994a565

Seems to be a source of many issues the past month or so. About time we
pin it by stable release.

Fix: #8394
2025-05-18 00:35:24 +02:00
Henrik Lissner
57b8d5fd8e fix(beancount): flymake-bean: false positives from relative paths
Beancount tools and Fava recognize relative paths in include and
document directives, and documents options. However, flymake-bean pipes
the buffer's contents to bean-check via /dev/stdin, so paths are
resolved relative to /dev instead of the location of the containing
beancount file, resulting in file errors. This commit expands those
relatives paths before sending the buffer's contents to bean-check to
resolve these false positives.
2025-05-18 00:33:14 +02:00
Henrik Lissner
bda27228eb fix(beancount): linter in narrowed buffers
flymake-bean only sends the visible buffer to bean-check, causing a
cascade of unhelpful linter warnings and errors.
2025-05-18 00:32:49 +02:00
Henrik Lissner
55e97eb78a fix(beancount): +beancount/balance: omit zeroed accounts 2025-05-16 10:55:47 +02:00
Henrik Lissner
6d9484820a fix(tty): s/tty-setup-hoom/tty-setup-hook
Amend: e25e684014
2025-05-16 10:55:03 +02:00
Henrik Lissner
bd908e4c47 revert: eglot
emacs-straight/eglot@0b0f894713 -> emacs-straight/eglot@6a9e0c76b9

I incorrectly believed that #8380 was resolved upstream, but it hasn't,
therefore this revert is necessary to avoid Eldoc errors on the latest
commit of Eglot.

Amend: 50200762cd
Ref: 13e92ceb3c
Ref: #8380
2025-05-16 09:28:29 +02:00
Henrik Lissner
e25e684014 feat(tty): add support for TTY child frames in 31+ 2025-05-16 08:53:00 +02:00
Henrik Lissner
a329d63f7d fix(tree-sitter): discard COMMIT recipe argument on <=30.x
Otherwise `treesit--install-language-grammar-1` will throw an arity
error on Emacs <=30.x when installing grammars.

Fix: #8393
2025-05-16 08:49:20 +02:00
Henrik Lissner
776da0dcf1 fix(csharp): csharp-ts-mode: side-effects on auto-mode-alist
Would otherwise be imposed every time the mode is activated.
2025-05-16 08:46:21 +02:00
Henrik Lissner
78f55f3a45 fix(magit): update diff-hl on revert
Not a complete fix, because +vc-gutter-update-h isn't aggressive or
responsive enough to changes in VC in buffers that haven't changed, but
I'll address that later.
2025-05-15 19:35:06 +02:00
Henrik Lissner
b546522257 docs(tree-sitter): revise doctor output 2025-05-15 18:58:29 +02:00
Henrik Lissner
2556cb58f2 feat(yaml): add treesit support 2025-05-15 18:55:42 +02:00
Henrik Lissner
8931c48913 fix(cc): treesit modes not remapped to
c-ts-mode and c++-ts-mode weren't being remapped to from c-mode/c++-mode
because of extra noise in `major-mode-remap-defaults`. I wish these
packages would leave these variables alone and leave it to the user to
configure; they're often inconsistent and overbearing.
2025-05-15 18:31:55 +02:00
Henrik Lissner
5be0df24d3 docs(csharp,julia,lua,markdown): mention +tree-sitter requirements 2025-05-15 18:19:32 +02:00