BREAKING CHANGE: break the global nature of the tree sitter
module by adding a +tree-sitter flag to every applicable module
In the background this hooks turn-on-tree-sitter-mode
to the major-mode-hook of the language.
This may also solve the eager loading of tree sitter
Some how for some reason tree-sitter-langs managed to load. If if put
its require in the block of a lazy loaded package. it would load.
If i were to set its use-package call to load it after a lazy loaded
package. it would load.
a hook (and disabling it) were the only reliable ways to get it to lazy
load
Move tree-sitter-langs into its own use-package call
This is to reflect an accepted code pattern seen in the rest of doom's
code.
This does not cause any user facing changes
Changes:
- Bind `F` to the function call text object
- Add the text object to the table
- Realign table so it looks right to people who don't hide emphasis
markers
- Add two feature subsections discussing with links to
- languages that have parsers
- languages that have highlighting support
- languages that have text object support and what text objects they
- have support for
- Fix capitalisation
where ts stands for tree sitter
Only install 'evil-textobj-treesitter' if :editor evil +everywhere is
enabled
Also Comment which text objs are not currently not working
This module installs 'tree-sitter' and 'tree-sitter-langs' as well as
the 'evil-textobj-treesitter' and configures them.
This module is based on the prototype module that @hlissner has started
and I am just fleshing out that work.
It also comes with a README file
Fix: #4151
org-roam-get-keyword performs some file IO to read file keywords from
all nodes. This can be slow with long node lists. With
org-roam/org-roam#1963, file title is baked into the schema, so we don't
need to do this work anymore.
Ref: org-roam/org-roam#1963
Fix: #6382
On Windows, restart-emacs doesn't escape its arguments properly (#6219).
56686f677a attempted to fix this, but ended up breaking it for
everyone else as well, causing the type error:
Wrong type argument: listp, "--eval \"(add-hook 'window-setup-hook #'doom-load-session 100)\""
This commit fixes both the regression and the original issue.
Amend: 56686f677aFix: #6219
This regression was introduced in 10d00b7cc4, causing
"wrong-type-argument: stringp (X . Y)" errors. It is triggered when
doom-files-in is used with a non-nil :map on a nested directory
tree (like our module tree).
Fix: #6370
Amend: 10d00b7cc4
By default, 'doom ci deploy-hooks' would deploy Doom's git hooks in
$EMACSDIR (~/.emacs.d/.git/hooks). Now it deploys in the local repo its
run in. This is part of an effort to generalize Doom's CI for use
outside this repo.
Ref: 4bae9ffa47
Continues from 47d1b82 as part of an effort to generalize Doom's CI for
use outside this repo:
- 'doom ci ...' commands now:
- Run in the context of the local repo where they're run, rather than
from Doom's install directory ($EMACSDIR).
- Load the first of $REPO_ROOT/.github/ci.el, $DOOMDIR/cli.el, or
$DOOMDIR/cli.el, before executing CI commands. This allows for
per-project configuration, for example:
- https://github.com/doomemacs/doomemacs/blob/master/.github/ci.el
- https://github.com/doomemacs/themes/blob/master/.github/ci.el
(Details may change post-3.0)
- Scopeless commit types are now enforced in `doom-cli-commit-scopes`,
rather than `doom-cli-commit-rules`. This lets you specify exceptions,
like 0597466261.
- `doom-cli-commit-scopes` now supports sub-lists, as an easy way to
permit type-local scopes. E.g. To allow 'install' and 'faq' scopes
only for 'docs:' commits.
(add-to-list 'doom-cli-commit-scopes '(docs "install" "faq"))
These sublists accepts predicates too.
- Fixed the link to git conventions in the linter's failure/warning
output, to point to our Discourse post.
Ref: https://github.com/doomemacs/doomemacs/blob/master/.github/ci.el
Ref: https://github.com/doomemacs/themes/blob/master/.github/ci.el
Ref: 0597466261
Amend: 47d1b82382
Defining `*-any-quote` objects via the exiting `*-block` helpers leads
to incorrect behaviour, where the trailing boundary is also included as
part of the selection (cursor on `|`, selection between `|`):
```
start: "te|st"
v i q: "|test"|
```
The expected behaviour is the same as `v i "`:
```
start: "te|st"
v i q: "|test|"
```
Fix: #5698
* module: add :input bidi
Co-authored-by: Yoav Marco <yoavm448@gmail.com>
* docs(bidi): flesh out README.org
Co-authored-by: Itai Y. Efrat <itai3397@gmail.com>
* feat(bidi): add +bidi-global-mode
* docs(bidi): improve font setting instructions
* feat(bidi): add +bidi-(hebrew|arabic)-font
Since the Hebrew and Arabic unicode blocks cover the vast majority of
RTL languages used today, we provide these fonts so end users don't have
to bother with setting up the hooks themselves.
* feat(bidi): add smart fontify
Adds support for using the bidi fonts on surrounding whitespace and
punctuation through. On by default, customizable through
+bidi-want-smart-fontify and +bidi-smart-fontify-keywords.
Also adds face versions of the bidi fonts.
* docs(bidi): recommend known good nastaliq fonts
* fix(bidi): re-set bidi faces after changing fonts
* feat(bidi): add +bidi-paragraph-direction
This allows users to choose what bidi-paragraph-direction is set to when
+bidi-mode is on, so they can choose if they want per paragraph
alignment (the default) or to force everything to be aligned RTL
* docs(bidi): conform to verbatim/code conventions
* docs(bidi): add font overview to Features
* docs(bidi): warn on rtl forced alignment footgun
+bidi-paragraph-direction is a nice variable to have if you primarily
use +bidi-mode for rtl text buffers, but it shouldn't be used in
conjunction with +bidi-global-mode since it messes up English buffers.
Co-authored-by: Yoav Marco <yoavm448@gmail.com>
When launching Doom via 'doom run', the child process inherits
bin/doom's environment. This change restricts this sub-environment to
the intended target: straight and its use of git.
Fix: #6320
Information is lost when converting font-spec's to xlfd strings (mainly,
DPI), in order to make them compatible with the face frame parameter. To
avoid this, we set the faces' :font attribute instead, which natively
accept font specs, xlfd strings, font objects, and xft strings; no
conversion necessary.
Fix: #6131