Previously we replaced line-endings in pasted text to the document
line-ending for some values in paste commands. We missed the `repeat`
values in paste though and didn't do any replacement in the replace
command.
Along with this change I've refactored the replace command to avoid
intermediary collections. We previously eagerly collected the values
from the input register as a `Vec<String>` but we can avoid both of
those conversions and only allocate for the conversion to a `Tendril`.
We can also switch from `str::repeat` to a manual implementation to
avoid the intermediary conversion to a String - this avoids an extra
allocation in the common case (i.e. no count).
Fixes#12329
Git can be configured to push tags with `push.followTags` but this is
not the default. Pushing the tag explicitly with `git push <remote>
<tag>` is generally considered safer anyways since it only attempts to
push the desired tag.
When a new language server is started, find_lsp_workspace is called
with LanguageConfiguration::workspace_lsp_roots as the root_dirs.
This behavior is different when a new document is opened.
find_lsp_workspace is called with editor::Config::workspace_lsp_roots
which is never set.
This leads to a bug where workspace-lsp-roots is not respected when
opening a new document. This commit fixes this bug.
This seems to be a historical artifact in `lsp_types` - we can use a
regular `use` statement to pull in the `bitflags!` macro rather than
an external crate definition. This fixes rust-analyzer's ability to find
the macro at least on rust-analyzer 2024-02-26.
This is a cosmetic change to replace all direct `use`s of the `url::Url`
type in the `helix-lsp-types` crate with `use crate::Url;`. The types
are the same type currently: this refactor will make a future
replacement of the Url type less noisy.
Connects https://github.com/helix-editor/helix/pull/11889
* use vlang/v-analyzer instead of v-analyzer/v-analyzer
* revert rev, because CI failed (couldn't repro working query-check locally, so not sure if this will work)