tree-sitter-verilog has unfortunately not been maintained for years.
Gonzalo maintains tree-sitter-systemverilog which boasts
- Full implementation of the latest SystemVerilog standard (IEEE 1800-2023)
- Robust and reliable: sv-tests results
- Actively maintained
- Implements node fields
- Supports parsing of code snippets (e.g., always block outside of a module)
- Basic preprocessing capabilities
- Thoroughly tested (~3000 tests) including:
verilog is strictly a subset of systemverilog so the systemverilog
grammar is backwards compatible with verilog features.
tree-sitter-verilog has significant issues and fails parsing many basic
verilog files.
I use tree-sitter-systemverilog daily and have had no issues since switching.
Now, +eval/send-region-to-repl or +eval:region/+eval:buffer will
communicate with the REPL via nodejs-repl's API, instead of feeding the
selection to the REPL line-by-line (the fallback method).
Inexplicably, the built-in git on MacOS is many orders of magnitude
faster than the external builds provided by Homebrew/Macports, so use
that there. Emacs on MacOS needs all the (performance) help it can get
and, fortunately, the bundled git is 2.23 or newer on (at least) MacOS
10.15 (Catalina) and newer, so this should be a relatively safe bet
without the need for version checks.
Prevent `get-register`s advice from affecting the `get-register` call in
`evil-get-register` in `+evil--use-evil-registers-a`.
Ref: #8698Fix: #8699
Amend: 88e2a0d5de
It's too easy for `package--initialized` to be set accidentally (if the
user loads straight or uses Doom's package API, which inevitably calls
doom-initialize-packages). Instead, package--activated is a better
heuristic because users who *want* package.el will call package-install
without suppressing activation.
Amend: eccde78741
- Resolves `magit-git-executable` ahead of time. We used to do this, but
back then, magit used `magit-git-executable` in TRAMP sessions too.
Now, magit has a separate `magit-remote-git-executable` variable.
- Only invalidate projectile cache if the magit status buffer's contents
has changed. This will prevent excessive (and potentially expensive)
`projectile-invalidate-cache` calls for trivial changes, l
- Avoid changing the active buffer when fetching a specific variable
from a buffer is enough (more cpu/mem efficient).
- Don't adjust the fringe if the fringes are already the requested size.
Some major modes may only have a flymake checker (like beancount-mode),
and since flymake is built into Emacs, it's possible the user may
encounter `flymake-mode` even when they haven't enabled +flymake for
this module, so at least load its flymake config.
- Makes {next,previous}-error search the current-buffer before looking
for others (#1908, #2497).
- Makes {next,previous}-error recognize flymake errors.
Fix: #2497Fix: #1908
Doom is configured to ignore :ensure in `use-package`, unless the user
has manually called `(package-initialize)` -- in which case, we assume
the user genuinely *wants* to use package.el, or some reason.
This is because Emacs can't differentiate between C-i and TAB. Doom
creates a special input event for <C-i> to distinguish them (which only
works in GUI Emacs), so I moved this keybind there.
Fix: doomemacs/community#79
Some were outdated, some were incorrectly labeled, others were already
completed, some were missing... Gotta fix them all.
Also, in :ui hl-todo, there are comments that describe how Doom uses
each of these annotations; those have been updated.
Makes `envrc-reload`, `envrc-reload-all`, `envrc-allow`, or `envrc-deny`
restart any running lsp/eglot clients within the current direnv, so that
they reflect the new environment.
In the spirit of 6f40ad5, I'm deprecating this macro because it doesn't
provide enough value to exist and serves only to complicate a casual
reader's understanding of Doom's modules.
Ref: 6f40ad55f5
Makes Emacs more broadly aware of Evil's registers (when Evil is
active), and fixes an issue where our advice integrating
`consult-register` with Evil registers would properly list Evil
registers, but not fetch/insert them correctly (#8698).
Fix: #8698Close: #8699
Co-authored-by: liaowang11 <liaowang11@users.noreply.github.com>
And use it to replace the various `posframe-delete-all` hooks littered
about to clean up child/posframes in contexts where they may linger
after destructive operations (like changing the active workspace or
executing `doom/reload`).
`doom-project-root` call `projectile-project-root`, which can be an
expensive operation. Overriding `marginalia--project-root` (which could
get called many hundreds of times each time marginalia renders its
annotations) with `doom-project-root` directly could grind marginalia to
a crawl (particularly in file/directory browsing workflows), so I take a
page out of `marginalia--project-root`s original implementation and
cache the root.
A chunk of Org's autoloads are siphoned off into a separate autoloads
file due to a file-local value for `generated-autoload-file` in some
org-*.el files. Since Straight (and Doom's profile generator) only
indexed PACKAGE-autoloads.el files, that meant that a bunch of Org
autoloads weren't being autoloaded, including
`org-element-with-disabled-cache` (#7347), so I merge org-loaddefs.el
into org-autoloads.el post-build.
Fix: #7347
This error is almost always a sign that something else is wrong with the
user's config/setup (e.g. the order of their modules in their `doom!`
blocks), and "fixing" it like this will no doubt only mask the real
cause, but users report this so often that this is may be a can that's
worth kicking down the road.
Fix: #8496
pcmpl-args' completion coverage isn't as complete at
{fish,bash}-completion, but it's much lighter, much faster, and builds
on top of pcomplete. Users will have to alias programs to
pcmpl-args-pcomplete-on-{help,man} to extend support.
BREAKING CHANGE: (Some) LSP clients and python code formatters (like
ruff-isort) handle organization of imports better, so I'd rather lean on
them than on niche, unmaintained third party dependencies.