Commit Graph

5922 Commits (44c54531a4310bfab534b334b2c330e662e8625f)
 

Author SHA1 Message Date
Sofus Addington 44c54531a4 Diagnostics for open document as blocking event 3 months ago
Sofus Addington 5a13b1701c Pull diagnostics on open 3 months ago
Sofus Addington 96a984c6a4 Check all documents 3 months ago
SofusA 4e85776813
Merge branch 'helix-editor:master' into pull-diagnostics 3 months ago
Sofus Addington 2fd8a98524 Refactoring 3 months ago
Sofus Addington 31c3794f0d pass document_id and fix copy paste error 3 months ago
RoloEdits e46cedfc26
refactor(commands): `trim_end` of `sh` output (#11161) 4 months ago
Samy AB 91e642ce50
Add gherkin syntax highlighting (#11083)
Co-authored-by: Blaž Hrastnik <blaz@mxxn.io>
4 months ago
Pascal Kuthe e604d9f8e0
keep (cursor) position when exactly replacing text (#5930)
Whenever a document is changed helix maps various positions like the
cursor or diagnostics through the `ChangeSet` applied to the document.

Currently, this mapping handles replacements as follows:

* Move position to the left for `Assoc::Before` (start of selection)
* Move position to the right for `Assoc::After` (end of selection)

However, when text is exactly replaced this can produce weird results
where the cursor is moved when it shouldn't. For example if `foo` is
selected and a separate cursor is placed on each character (`s.<ret>`)
and the text is replaced (for example `rx`) then the cursors are moved
to the side instead of remaining in place.

This change adds a special case to the mapping code of replacements:
If the deleted and inserted text have the same (char) length then
the position is returned as if the replacement doesn't exist.

only keep selections invariant under replacement

Keeping selections unchanged if they are inside an exact replacement
is intuitive. However, for diagnostics this is not desirable as
helix would otherwise fail to remove diagnostics if replacing parts
of the document.
4 months ago
Michael Davis 7e85fd5b77 Add documentation for static/typable/macro commands 4 months ago
Michael Davis b7820ee668 Disallow macro keybindings within command sequences
This is a temporary limitation because of the way that command sequences
are executed. Each command is currently executed back-to-back
synchronously, but macros are by design queued up for the compositor.
So macros mixed into a command sequence will behave undesirably: they
will be executed after the rest of the static and/or typable commands
in the sequence.

This is pending a larger refactor of how we handle commands.
<https://redirect.github.com/helix-editor/helix/issues/5555> has
further details and <https://redirect.github.com/helix-editor/helix/issues/4508>
discusses a similar problem faced by the command palette.
4 months ago
Michael Davis 1098a348aa Parse and execute macro mappable commands 4 months ago
Timothy Hutz bb43a90b86
removed duplicate in lang-support MD file with vector dedup. (#10563) 4 months ago
Chromo-residuum-opec 9daf5c6f8b
feat: add iceberg light/dark themes (#10674)
* feat: add iceberg light/dark themes

* set ui.virtual and ui.virtual.ruler

* quote ui.menu.selected key
4 months ago
Kiara Grouwstra 3b306fa022
Update languages.toml - add nixd, closes #10734 (#10767) 4 months ago
chtenb e884daea41
Document completion menu bindings (#10994)
* Update keymap.md

* Update keymap.md

* Update keymap.md
4 months ago
Eduard Bardají Puig 779ce41a1f
Provide more details on runtime directory (#11026)
* Provide more details on runtime directory

* Improve pre-built binaries description
4 months ago
Sampo Siltanen 2e90868a37
Update fsharp tree sitter repo reference (#11061)
The repository reference used here was a fork from the actual
repository, which has now been moved under ionide organization, where it is
in active maintenance and development.

The commit SHA is the currently latest commit from main branch.

The injections.scm is copied as is from the fsharp treesitter repo
[queries](https://github.com/ionide/tree-sitter-fsharp/blame/main/queries).

The locals.scm is copied from the repo and the capture names are to follow
the standard names:
- Replace @local.definition.var @local.definition.function, and @local.definition.parameter with @local.definition
- Remove (#set! "definition.function.scope" "parent")

The highlights.scm is copied as well from the fsharp
treesitter repo, but modified here to match helix highlight scopes based
on my best guesstimates. The changes made:

- Remove @spell scopes
- Split @comment into @comment.line and @comment.block
- Replace @comment.documentation with @comment.block.documentation
- Replace @character.special with @special
- Replace @variable.member with @variable.other.member
- Replace @type.definition with @type
- Replace @function.member with @function.method
- Replace @module with @namespace
- Replace @constant.macro with @function.macro
- Replace @property with @variable.other.member
- Replace @variable.member with @variable.other.member
- Replace @variable.parameter.builtin with @variable.builtin
- Replace @function.call with @function
- Replace @number with @constant.numeric.integer and @constant.numeric.float
- Replace @boolean with @constant.builtin.boolean
- Replace @keyword.conditional with @keyword.control.conditional
- Replace @keyword.return with @keyword.control.return
- Replace @keyword.repeate with @keyword.control.repeat
- Replace @keyword.import with @keyword.control.import
- Replace @keyword.modifier with @keyword.storage.modifier
- Replace @keyword.type with @keyword.storage.type
- Replace @keyword.exception with @keyword.control.exception
- Replace @module.builtin with @namespace
4 months ago
kanielrkirby f0282689da
Use `try_lock` in `diff_handle` for Diff gutter (#11092)
* Use `try_lock` in `diff_handle` for Diff gutter
- Add the method `try_load() -> Option<Diff>` to `DiffHandle`, using `try_lock` to avoid deadlocks.
- Use said method in `gutter.rs diff()`, which will use a blank `GutterFn` instead when met with a locked `Diff`.

* Revert changes

* Replace `Mutex` with `RwLock` in `Diff`

---------

Co-authored-by: Kaniel Kirby <pirate7007@runbox.com>
4 months ago
麦芽糖 aaaafb8f5f
feat: add thrift hightlight (#11367) 4 months ago
Poliorcetics 68f495b023
just: Use updated grammar with recent language changes and correct highlighting (#11380) 4 months ago
lefp 8851031449
add verilog comment textobjects (#11388) 4 months ago
Val Packett 2f60c21727
Add jq language support (#11393)
jq is a language for manipulating JSON data: https://jqlang.github.io/jq/
4 months ago
David Else 931ddbb077
Update HTML highlights (#11400)
* Update HTML highlights

* Update after review comments
4 months ago
RoloEdits f52251960a
fix(picker): no longer `trim` search pattern (#11406) 4 months ago
Heath Stewart d6431f41d9
Add TypeSpec support (#11412)
* Add TypeSpec support

Adds support for TypeSpec <https://typespec.io> in helix.

* Resolve PR comments

* Pull in LICENSE

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>

---------

Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
4 months ago
bilabila c9c4452824
Support i3wm and sway config (#11424)
* Support i3wm and sway config

better syntax highlight and fix comment string

* typo
4 months ago
David Else f8f056d82f
dark_plus: add picker highlights, update underlined modifier syntax, and tweak a few settings (#11415) 4 months ago
Raph ca47b3c140
Added `mesonlsp` as the default LSP for Meson (#11416)
* defaulted meson to JCWasmx86/mesonlsp

* generated docs for mesonlsp
4 months ago
yehor 9678c3fe60
Add .svn as workspace root marker (#11429)
* add .svn as workspace-root marker

* cargo fmt
4 months ago
Jefta 518425e055
Add commands for movement by subwords (#8147)
* Allow moving by subword
* Add tests for subword movement
4 months ago
Blaž Hrastnik 0929704699 stdx: ...and this cast is now unnecessary 4 months ago
Blaž Hrastnik 7d017d8fd6 stdx: PSID now sits under Win32::Foundation 4 months ago
Blaž Hrastnik 8f6793a181 stdx: Include all required windows-sys APIs 4 months ago
Blaž Hrastnik 6ba46e5cbf Fix crossterm compilation on macOS 4 months ago
Blaž Hrastnik 70918570a9 tui: Port improvement from ratatui on crossterm 0.28 (https://github.com/ratatui-org/ratatui/pull/1072) 4 months ago
dependabot[bot] 92a87dbc31 build(deps): bump the rust-dependencies group with 9 updates
Bumps the rust-dependencies group with 9 updates:

| Package | From | To |
| --- | --- | --- |
| [regex](https://github.com/rust-lang/regex) | `1.10.5` | `1.10.6` |
| [dunce](https://gitlab.com/kornelski/dunce) | `1.0.4` | `1.0.5` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.121` | `1.0.122` |
| [toml](https://github.com/toml-rs/toml) | `0.8.16` | `0.8.19` |
| [crossterm](https://github.com/crossterm-rs/crossterm) | `0.27.0` | `0.28.1` |
| [tempfile](https://github.com/Stebalien/tempfile) | `3.10.1` | `3.11.0` |
| [serde_repr](https://github.com/dtolnay/serde-repr) | `0.1.12` | `0.1.19` |
| [which](https://github.com/harryfei/which-rs) | `6.0.1` | `6.0.2` |
| [windows-sys](https://github.com/microsoft/windows-rs) | `0.52.0` | `0.59.0` |

Updates `regex` from 1.10.5 to 1.10.6
- [Release notes](https://github.com/rust-lang/regex/releases)
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/regex/compare/1.10.5...1.10.6)

Updates `dunce` from 1.0.4 to 1.0.5
- [Commits](https://gitlab.com/kornelski/dunce/compare/v1.0.4...v1.0.5)

Updates `serde_json` from 1.0.121 to 1.0.122
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.121...v1.0.122)

Updates `toml` from 0.8.16 to 0.8.19
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.8.16...toml-v0.8.19)

Updates `crossterm` from 0.27.0 to 0.28.1
- [Release notes](https://github.com/crossterm-rs/crossterm/releases)
- [Changelog](https://github.com/crossterm-rs/crossterm/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crossterm-rs/crossterm/commits)

Updates `tempfile` from 3.10.1 to 3.11.0
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.10.1...v3.11.0)

Updates `serde_repr` from 0.1.12 to 0.1.19
- [Release notes](https://github.com/dtolnay/serde-repr/releases)
- [Commits](https://github.com/dtolnay/serde-repr/compare/0.1.12...0.1.19)

Updates `which` from 6.0.1 to 6.0.2
- [Release notes](https://github.com/harryfei/which-rs/releases)
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/harryfei/which-rs/compare/6.0.1...6.0.2)

Updates `windows-sys` from 0.52.0 to 0.59.0
- [Release notes](https://github.com/microsoft/windows-rs/releases)
- [Commits](https://github.com/microsoft/windows-rs/compare/0.52.0...0.59.0)

---
updated-dependencies:
- dependency-name: regex
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: dunce
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: toml
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: crossterm
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-dependencies
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-dependencies
- dependency-name: serde_repr
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: which
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: rust-dependencies
- dependency-name: windows-sys
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: rust-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
4 months ago
Sofus Addington 3a56e4858c Use async hook instead 4 months ago
dependabot[bot] 6d123aa549 build(deps): bump bitflags from 1.3.2 to 2.6.0
Bumps [bitflags](https://github.com/bitflags/bitflags) from 1.3.2 to 2.6.0.
- [Release notes](https://github.com/bitflags/bitflags/releases)
- [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bitflags/bitflags/compare/1.3.2...2.6.0)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
4 months ago
Philip Giuliani b8c968fe47
Update Gleam tree sitter to support label shorthand syntax (#11427) 4 months ago
Sofus Addington 1e446d57c4 Undo changes to toolchain 4 months ago
Sofus Addington 29c5318f9c Iterate over language servers 4 months ago
Sofus Addington 13f048b3d7 Refactor and share code with publish diagnostics 4 months ago
Sofus Addington dcd4d45a45 Merge branch 'pull-diagnostics' of https://github.com/SofusA/helix into pull-diagnostics 4 months ago
Sofus Addington d8fd20482b Merge branch 'master' into pull-diagnostics 4 months ago
André Carneiro 0a4432b104
Add statusline errors when nothing is selected with `s`, `K`, `A-K` (#11370) 4 months ago
RoloEdits cfe80acb6f
output `stderr` in `:sh` popup if shell commands fail (#11239)
* refactor(commands): output `stderr` in `:sh` popup

* refactor(commands): switch to `from_utf8_lossy`

This way something is always displayed.

* refactor: no longer log stderr output on failure
4 months ago
TheoCorn 63953e0b9e
fix :move panic when starting a new language server (#11387)
* fix move panic

* change location of is initialized check
4 months ago
RoloEdits 86aecc96a1
chore: clean up clippy lints (#11377)
Using clippy 1.80.0. Also cleans up some that were windows only.
4 months ago
Pascal Kuthe 3fcf168c33
Merge pull request #11355 from helix-editor/helix-lsp-types
Vendor `lsp-types`
4 months ago