forked from helix-editor/helix
-
Notifications
You must be signed in to change notification settings - Fork 1
Pull in latest stuff #19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…editor#13017) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The info log within `process_request_response` duplicated the body of the JSON message printed earlier by the transport which was confusing. The error log in the completion handler was easy to hit during normal use and is not actually an error - dropping is the graceful way to handle changes occurring while completion requests are in flight.
Now that the package definition lives in default.nix we need direnv to watch that file to get automatic reloads.
This follows a pattern used in the signature help request for example. Moving the json deserialization into the return future of `text_document_hover` makes the types easier for callers to work with.
Co-authored-by: Isaac Mills <[email protected]>
The runtime directory should be correctly set without the need to set HELIX_RUNTIME manually because we check for a runtime directory within CARGO_MANIFEST_DIR. This change also filters the runtime directory out of the source file set passed to buildRustPackage since the runtime directory is not needed at compilation time.
The `--no-rosegment` is not supported on macOS but the other flag configurations can be used on both macOS and Linux.
Our `lld` was a bit out of date. Mold seems to be slightly faster anyways and seems to work well on both Linux & macOS.
`mold` does not appear to work on macOS as stated in the parent commit.
Render rulers before the cursor to ensure that the cursor, when over a ruler, is not hidden from view. Without this, you typically end up with 1) foreground text that is the same as the background if the ruler doesn't already have a foreground and 2) no visible cursor, because the ruler's background color took precedence. By moving the rulers before the cursor, this ensures that the theme is still rendered more or less the way one would visually expect things to turn out.
…3063) The binary name was changed in wgsl-analyzer commit 4c56b1435d30cd45d8aee52297bbf68ed5bb3beb and released in 0.9.7.
These match the equivalent options in VSCode. `trim_trailing_whitespace` is also the name used by EditorConfig. * `trim-final-newlines` trims any extra line endings after the final one * `trim-trailing-whitespace` trims any trailing whitespace (but not empty lines)
This matches the behavior described by the EditorConfig spec for its `insert_final_newline` option: > Editors must not insert newlines in empty files when saving those > files, even if `insert_final_newline = true`. Co-authored-by: Axlefublr <[email protected]>
…ditor#13070) Bumps the rust-dependencies group with 5 updates: | Package | From | To | | --- | --- | --- | | [tempfile](https://github.com/Stebalien/tempfile) | `3.17.1` | `3.18.0` | | [once_cell](https://github.com/matklad/once_cell) | `1.20.3` | `1.21.0` | | [serde](https://github.com/serde-rs/serde) | `1.0.218` | `1.0.219` | | [tokio](https://github.com/tokio-rs/tokio) | `1.43.0` | `1.44.0` | | [indexmap](https://github.com/indexmap-rs/indexmap) | `2.7.1` | `2.8.0` | Updates `tempfile` from 3.17.1 to 3.18.0 - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](Stebalien/tempfile@v3.17.1...v3.18.0) Updates `once_cell` from 1.20.3 to 1.21.0 - [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md) - [Commits](matklad/once_cell@v1.20.3...v1.21.0) Updates `serde` from 1.0.218 to 1.0.219 - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.218...v1.0.219) Updates `tokio` from 1.43.0 to 1.44.0 - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](tokio-rs/tokio@tokio-1.43.0...tokio-1.44.0) Updates `indexmap` from 2.7.1 to 2.8.0 - [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md) - [Commits](indexmap-rs/indexmap@2.7.1...2.8.0) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: once_cell dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies - dependency-name: indexmap dependency-type: direct:production update-type: version-update:semver-minor dependency-group: rust-dependencies ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 15 to 16. - [Release notes](https://github.com/cachix/cachix-action/releases) - [Commits](cachix/cachix-action@v15...v16) --- updated-dependencies: - dependency-name: cachix/cachix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…or#13073) Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 30 to 31. - [Release notes](https://github.com/cachix/install-nix-action/releases) - [Commits](cachix/install-nix-action@v30...v31) --- updated-dependencies: - dependency-name: cachix/install-nix-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump rustix from 0.38.44 to 1.0.2 Bumps [rustix](https://github.com/bytecodealliance/rustix) from 0.38.44 to 1.0.2. - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGES.md) - [Commits](bytecodealliance/rustix@v0.38.44...v1.0.2) --- updated-dependencies: - dependency-name: rustix dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> * Drop unnecessary unsafe blocks for rustix Uid and Gid types * Revert spurious downgrade of windows-sys --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michael Davis <[email protected]>
This is a minor move that will make future refactors of code actions simpler. We should be able to move nearly all code action functionality into `helix-view`, save UI stuff like the `menu::Item` implementation and dealings with the compositor.
This is purely for ergonomics: we should be able to pass strings for example crate::runtime_file(format!("namespace/{foo}/{bar}.txt")) (Note that this works on Windows, see the `Path` documentation.)
…x-editor#13156) When requesting code actions from multiple LSP servers, rather than bailing as soon as an error is encountered, instead log the error and then keep going so that successful requests can be presented to the user.
This is the same change as 1c9a5bd but for: * document symbols * workspace symbols * goto definition/declaration/.../references * hover Instead of bailing when one server fails, we log an error and continue gathering items from the other responses.
Limiting to zero arguments was incorrect - a set of buffers can be specified.
This resolves a TODO in the core diagnostic module to refactor this type. It was originally an alias of `LanguageServerId` for simplicity. Refactoring as an enum is a necessary step towards introducing "internal" diagnostics - diagnostics emitted by core features such as a spell checker. Fully supporting this use-case will require further larger changes to the diagnostic type, but the change to the provider can be made first. Note that `Copy` is not derived for `DiagnosticProvider` (as it was previously because `LanguageServerId` is `Copy`). In the child commits we will add the `identifier` used in LSP pull diagnostics which is a string - not `Copy`.
This includes a change to lsp-types to store the identifier as an Arc since it will be cloned for each diagnostic.
This adds events for: * a document being opened * a document being closed * a language server sending the initialized notification * a language server exiting and also moves some handling done for these scenarios into hooks, generally moving more into helix-view. A hook is also added on `DocumentDidChange` which sends the `text_document_did_change` notification - this resolves a TODO in `document`.
Previously the `call` helper (and its related functions) returned a `serde_json::Value` which was then decoded either later in the client (see signature help and hover) or by the client's caller. This led to some unnecessary boilerplate in the client: let resp = self.call::<MyRequest>(params); Some(async move { Ok(serde_json::from_value(resp.await?)?) }) and in the caller. It also allowed for mistakes with the types. The workspace symbol request's calling code for example mistakenly decoded a `lsp::WorkspaceSymbolResponse` as `Vec<lsp::SymbolInformation>` - one of the untagged enum members (so it parsed successfully) but not the correct type. With this change, the `call` helper eagerly decodes the response to a request as the `lsp::request::Request::Result` trait item. This is similar to the old helper `request` (which has become redundant and has been eliminated) but all work is done within the same async block which avoids some awkward lifetimes. The return types of functions like `Client::text_document_range_inlay_hints` are now more verbose but it is no longer possible to accidentally decode as an incorrect type. Additionally `Client::resolve_code_action` now uses the `call_with_ref` helper to avoid an unnecessary clone.
…13169) Even though there is a check for `is_like_msvc`, when setting `CXX` to `clang++` this will miss that check and try to use `-fPIC`, which is an invlaid flag for the target.
Updates the signature for the command to take 0 arguments. This probably regressed during 0efa820.
…ditor#13190) Bumps the rust-dependencies group with 4 updates: [tempfile](https://github.com/Stebalien/tempfile), [log](https://github.com/rust-lang/log), [rustix](https://github.com/bytecodealliance/rustix) and [cc](https://github.com/rust-lang/cc-rs). Updates `tempfile` from 3.19.0 to 3.19.1 - [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md) - [Commits](Stebalien/tempfile@v3.19.0...v3.19.1) Updates `log` from 0.4.26 to 0.4.27 - [Release notes](https://github.com/rust-lang/log/releases) - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md) - [Commits](rust-lang/log@0.4.26...0.4.27) Updates `rustix` from 1.0.2 to 1.0.3 - [Release notes](https://github.com/bytecodealliance/rustix/releases) - [Changelog](https://github.com/bytecodealliance/rustix/blob/main/CHANGES.md) - [Commits](bytecodealliance/rustix@v1.0.2...v1.0.3) Updates `cc` from 1.2.16 to 1.2.17 - [Release notes](https://github.com/rust-lang/cc-rs/releases) - [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md) - [Commits](rust-lang/cc-rs@cc-v1.2.16...cc-v1.2.17) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: log dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: rustix dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies - dependency-name: cc dependency-type: direct:production update-type: version-update:semver-patch dependency-group: rust-dependencies ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
The point of ghost transactions is to avoid notifying language servers about changes since the change is meant to be temporary. This is used for completion while selecting items in the menu: updating the language server would mess up incomplete completions. When a document is changed by a ghost transaction the language server will not be notified so its understanding of the document will not be synchronized and any positions it sends may be out-of-date. So we should avoid triggering a request for new document color information when a document is changed by a ghost transaction.
This fixes a regression from 6da1a79. `:buffer-close` on an unmodified document would cause later panics since the document should not have been removed. Instead of eagerly removing the document on the first line we need to wait until we've checked that it's unmodified.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.