before today all text objects were bound in all modes, now they have
been properly gatekept and only appear when `+tree-sitter-keys-mode` is
enabled / hooked, this allows for more flexibility and the ability to
arbitrarily disable / enable tree sitter text objects (which is nice)
as opposed to a nasty error,
the error was raised because I was not using the abs of count
this commit also comes with general code cleanup,
this includes
- removal of the eval quasiquote antipattern when an apply would work
better
- use of the :key keyword instead of the lambda
This basically stops the "not overlay" error we were getting when you
tried to jump to many times. this does have the disadvantage of not
jumping at all if the amount of jumps is higher than the amount of
overlays but this can be fixed in a future commit if necessary.
Changes:
- add +fold--ts-fold-p which only checks if the feature is around
- add ts-fold into +fold/toggle, +fold/open, +fold/close
- update doc strings
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
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>
pip-requirements-mode fetches the pypi.org package list via HTTP
request, which blocks. This can sometimes take unbearably long in cases
where the user has a slow or no internet connection.
This fix defers this behavior until the first time completion is
invoked.
Fix: #5998