- Update to version 25.01:

Features:
  * Big refactor for Pickers
  * Use a table layout and allow filtering by column
  * Reimplement global_search to allow changing the query
    dynamically
  * Add an alternative "inline" display for LSP diagnostics
  * Support defining keybindings as macros
  * Continue line comments in o/O and on <ret> in insert mode
  * Allow configuring and switching clipboard providers at runtime
  * Add support for path completion
  * Support bindings with the Super (Cmd/Win/Meta) modifier
  * Support rendering and jumping between tabstops in snippet
    completions
  * Allow theming directory completions
  Commands:
  * Add commands to move within snake_case or camelCase words
  * Add search_selection_detect_word_boundaries - This command
    takes the * key in normal and select mode, replacing
    search_selection which was moved to A-*.
  Usability:
  * Add :edit and :e aliases for :open
  * Trim trailing newline from pipe command outputs when the input
    doesn't have a trailing newline
  * Add :mv alias for :move
  * Return document display name instead of absolute path from the
    % special register
  * Track view position on a per-view instead of per-document basis
  * Improve scrolloff calculation to leave a gap in the middle
  * Show a popup for stderr printed by failed :sh commands
  * Add statusline errors when nothing is selected with s, K, A-K
  * Add .svn as a workspace root marker
  * Trim the end of :sh outputs
  * Show LSP window/showMessage messages in the statusline
  * Support finding workspace directories via .jj directories
  * Join single-line comments with join_selections (J)
  * Show anonymous syntax tree nodes in :tree-sitter-subtree
  * Save an undo checkpoint before paste in insert mode
  * Only break on ASCII spaces in :reflow
  * Add a default-yank-register config option
  * Show a statusline error for :format when a formatter is not
    available
  * Change to the home directory with :cd with no arguments
  * Change default comment token to # for unrecognized files
  * Trim all trailing whitespace on insert_newline
  * Change to the prior directory with :cd -
  * Allow parsing - (with no modifiers) as a keybinding
  * Improve opening statusline and error messages when opening
    duplicate files or directories
  * Trim trailing colons in paths passed on the argv
  * Show tree-sitter parser availability in hx --health <lang>
  * Show a preview block for colors in the LSP completion menu
  * Add infobox help for surround_add, surround_replace and
    surround_delete
  Fixes:
  * Respect document indentation settings in format_selections (=)
  * Avoid switching the current document to normal mode during an
    LSP workspace/applyEdit operation
  * Fix off-by-one in LSP find_completion_range
  * Prefer file-system mtime to local system time for detecting
    external modifications
  * Fix writing of hardlinks
  * Prevent language servers from being automatically restarted
    when stopped with :lsp-stop
  * Stable-sort LSP text edits
  * Fix determination of current language layer in documents with
    nested language injections
  * Fix a panic from :moveing a file to a new extension which
    starts a language server
  * Fix a panic from duplicating the diff gutter
  * Keep cursor position when exactly replacing text
  * Fix a panic from jump_backward on a newly opened split
  * Fix a panic from language servers sending an unknown diagnostic
    severity
  * Fix a panic when drawing at the edge of the screen
  * Fix git repo detection on symlinks
  * Fix a panic from a language server sending an out-of-range
    active signature index in textDocument/signatureHelp
  * Fix a panic from using C-k in a prompt ending in a multi-byte
    character
  * Expand tildes in paths passed to :read
  * Respect per-language workspace-lsp-roots configuration when
    opening new documents
  * Consistently replace line-endings in paste/replace commands
  * Fix formatting in error statusline messages when inspecting
    variables in DAP
  * Fix invisible printing of headers in --health output on light
    terminals
  * Accept integers serialized as floats in the JSONRPC id field
  Themes:
  * Add new themes:
    adwaita-light, ao, carbonfox, eiffel,
    seoul256, sunset, vintage, yo
  * Update themes:
    bogster, dark_plus, snazzy, everforest,
    gruvbox, hex, modus, voxed
  Languages:
  * Added new languages:
    jjdescription, i3wm and Sway configs, TypeSpec, jq, Thrift,
    Gherkin, Circom, Dune, Snakemake, Cylc, textproto, Spade,
    NestedText, Quint, Amber-lang, Vento, Teal, Koto, NGINX
  * Add comment injections for Hare
  * Improve highlights for blade.php files
  * Update tree-sitter-slint
  * Recognize just files as Just
  * Recognize mdx as Markdown
  * Update Just grammar and queries
  * Recognize tclsh as TCL
  * Update Godot grammar and queries
  * Update Gleam grammar and queries
  * Add mesonlsp for Meson
  * Update HTML highlights
  * Add comment textobjects for Verilog
  * Switch tree-sitter-just grammar
  * Update tree-sitter-fsharp
  * Add nixd for Nix
  * Highlight types and enum members from the Rust prelude
  * Improve textobjects for HCL, Nix
  * Add textobjects queries for docker-compose, dockerfile, env,
    git-config, hcl, hocon, prisma, SQL and YAML
  * Recognize cshtml files as HTML
  * Set a memory limit for the Lean language server
  * Add configurations for jedi and ruff language servers
  * Update Vue highlights
  * Switch tree-sitter-hcl grammar
  * Fix odinfmt formatter configuration
  * Recognize rbs files as Ruby
  * Update tree-sitter-nickel
  * Recognize ldtk and ldtkl files as JSON
  * Fix highlights for builtin functions in Fish
  * Add superhtml for HTML
  * Add a configuration for the Vale language server
  * Add Erlang Language Platform
  * Update Odin highlights
  * Remove auto-pairs for single quotes in SML
  * Add glsl_analyzer for GLSL
  * Recognize .prettierrc as YAML
  * Fix swift-format formatter configuration
  * Add package.json and tsconfig.json as JS/TS workspace roots
  * Add "INVARIANT" to comment error highlights
  * Update Rescript grammar and queries
  * Update tree-sitter-nasm
  * Update LLVM grammars
  * Update Perl and Pod grammars
  * Add Nim injections in Nix
  * Recognize livemd as Markdown
  * Update Unison grammar and queries
  * Turn off Swift auto-format by default
  * Recognize .swift-format as JSON
  * Recognize .clangd and .clang-format as YAML
  * Recognize ssh_config.d/*.conf as sshclientconfig
  * Update comment token configs for Zig
  * Update tree-sitter-bicep
  * Add hyperls for Hyperlang
  * Add highlight queries for Solidity
  * Recognize WORKSPACE.bzlmod as Starlark
  * Update Ada grammar and queries
  * Restrict Hocon file-types glob patterns
  * Update Mojo language server to Magic
  * Switch tree-sitter-v grammar
  * Add "COMPLIANCE" to comment error highlights
  * Add a language server configuration for ltex-ls-plus
  * Update tree-sitter-dockerfile
  * Add ] to PHP outdents
  * Add textobjects for Odin
  * Update tree-sitter-heex and queries
  * Update protobuf highlights
  * Switch tree-sitter-query
  * Add block comment configurations for jinja and nunjucks
  * Add uv shebang for python
  * Update tree-sitter-vento
  * Switch Protobuf tree-sitter grammar
  * Recognize hypr/*.conf as Hyprland

OBS-URL: https://build.opensuse.org/package/show/editors/helix?expand=0&rev=88
This commit is contained in:
OBS User smolsheep 2025-01-04 07:28:47 +00:00 committed by Git OBS Bridge
commit 2241d8134a
12 changed files with 1582 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

12
README-suse-maint.md Normal file
View File

@ -0,0 +1,12 @@
From upstream releases, choose the file with `helix-<version>-source.tar.xz`.
And run `rpmdev-spectool -g helix.spec`. Create a directory named `helix` where
you should extract the contents of the downloaded tarball. Thereafter, run
`osc service disabledrun`. This will run cargo vendor and compress them inside
a tarball. You can check if you want to disable the cargo update mechanism.
Please do remember to create separate packages for the runtime and the helix
binary as the former is huge when built. Helix still runs fine without
the runtime but for it to run "normally" a user just needs to run
`helix --grammar fetch` then `helix --grammar build`. The purpose of the
runtime files as a package is to maintain consistency and convenience
and stay faithful with how other packagers do it and when someone needs it.

11
_constraints Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<physicalmemory>
<size unit="G">8</size>
</physicalmemory>
<disk>
<size unit="G">16</size>
</disk>
</hardware>
</constraints>

7
_service Normal file
View File

@ -0,0 +1,7 @@
<services>
<service name="download_files" mode="manual" />
<service name="cargo_vendor" mode="manual">
<param name="src">helix-*.tar.xz</param>
</service>
</services>

3
helix-24.03.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c59a5988f066c2ab90132e03a0e6b35b3dd89f48d3d78bf0ec81bd7d88c7677e
size 133067920

3
helix-24.07.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:44d9eb113a54a80a2891ac6374c74bcd2bce63d317f1e1c69c286a6fc919922c
size 142746572

3
helix-25.01.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:922fba301e1a3d9b933a445ab2d306cffcd689d678ecd06f00870cfc874cffb8
size 150345008

1
helix-rpmlintrc Normal file
View File

@ -0,0 +1 @@
addFilter("files-duplicate")

1351
helix.changes Normal file

File diff suppressed because it is too large Load Diff

164
helix.spec Normal file
View File

@ -0,0 +1,164 @@
#
# spec file for package helix
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global _helix_runtimedir %{_libdir}/%{name}/runtime
Name: helix
Version: 25.01
Release: 0
Summary: A post-modern modal text editor written in Rust
License: (Apache-2.0 OR MIT) AND BSD-3-Clause AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 OR MIT) AND (Apache-2.0 OR MIT OR Zlib) AND (MIT OR Unlicense) AND (Apache-2.0 OR Zlib OR MIT) AND Apache-2.0 AND BSL-1.0 AND ISC AND MIT AND MPL-2.0 AND Zlib AND MPL-2.0
URL: https://github.com/helix-editor/helix
# This tarball includes fetched grammars
Source0: %{url}/releases/download/%{version}/%{name}-%{version}-source.tar.xz#/%{name}-%{version}.tar.xz
Source1: vendor.tar.zst
BuildRequires: bash-completion
BuildRequires: c++_compiler
BuildRequires: c_compiler
BuildRequires: cargo >= 1.74.0
BuildRequires: cargo-packaging
BuildRequires: fdupes
BuildRequires: fish
BuildRequires: git-core
BuildRequires: hicolor-icon-theme
BuildRequires: update-desktop-files
BuildRequires: zsh
Recommends: %{name}-runtime = %{version}
ExclusiveArch: %{rust_arches}
%description
A kakoune/neovim inspired modal text editor with built-in LSP and
has treesitter support for syntax highlighting and improved navigation
%package bash-completion
Summary: Bash Completion for %{name}
Supplements: (%{name} and bash-completion)
Requires: %{name} = %{version}
BuildArch: noarch
%description bash-completion
Bash command-line completion support for %{name}.
%package fish-completion
Summary: Fish Completion for %{name}
Supplements: (%{name} and fish)
Requires: %{name} = %{version}
BuildArch: noarch
%description fish-completion
Fish command-line completion support for %{name}.
%package zsh-completion
Summary: Zsh Completion for %{name}
Supplements: (%{name} and zsh)
Requires: %{name} = %{version}
BuildArch: noarch
%description zsh-completion
Zsh command-line completion support for %{name}.
%package runtime
Summary: Runtime files for %{name}
Requires: %{name}
%description runtime
Helix runtime files. Separated due to how huge the runtime files are.
The runtime contains tree-sitter and grammars that makes run helix normally
if there is no runtime present in the users config directory specifically
`XDG_CONFIG_HOME/helix`.
%prep
%autosetup -a1 -c
# Remove shell definitions
sed -e '/^\#\!\/usr\/bin\/env .*/d' -i contrib/completion/hx.*
%build
#be explicit where the default runtime lives
export HELIX_DEFAULT_RUNTIME=%{_libdir}/%{name}/runtime
%{cargo_build}
cargo run --release --offline -- --grammar build
%install
install -d -m 0755 %{buildroot}%{_helix_runtimedir}
install -Dm0755 ./target/release/hx %{buildroot}%{_bindir}/hx
ln -sfv "%{_bindir}/hx" "%{buildroot}%{_bindir}/%{name}"
cp -av "runtime/queries" %{buildroot}%{_helix_runtimedir}
cp -av "runtime/themes" %{buildroot}%{_helix_runtimedir}
find "%{_builddir}/%{name}-%{version}/runtime/grammars" -type f -name '*.so' -exec \
install --verbose -Dm 755 {} -t "%{buildroot}%{_helix_runtimedir}/grammars" \;
install -Dm644 runtime/tutor -t %{buildroot}%{_helix_runtimedir}
# Not needed during runtime
rm -rfv %{buildroot}%{_helix_runtimedir}/grammars/sources
# Desktop application file
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/Helix.desktop %{buildroot}%{_datadir}/applications/%{name}.desktop
%suse_update_desktop_file %{name}
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/Helix.appdata.xml %{buildroot}%{_datadir}/metainfo/%{name}.appdata.xml
# Icon
install -Dm644 -T %{_builddir}/%{name}-%{version}/logo.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
# Shell completions
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.bash %{buildroot}%{_datadir}/bash-completion/completions/hx
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.fish %{buildroot}%{_datadir}/fish/vendor_completions.d/hx.fish
install -Dm644 -T %{_builddir}/%{name}-%{version}/contrib/completion/hx.zsh %{buildroot}%{_datadir}/zsh/site-functions/_hx
%fdupes %{buildroot}
%files
%license LICENSE
%doc README.md CHANGELOG.md languages.toml docs/CONTRIBUTING.md docs/architecture.md docs/vision.md
%{_bindir}/hx
%{_bindir}/%{name}
# Desktop application file
%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop
%{_datadir}/metainfo/%{name}.appdata.xml
%dir %{_libdir}/%{name}
# Tutor
%dir %{_helix_runtimedir}
%{_helix_runtimedir}/tutor
%files runtime
# Runtimes and runtime files
# Grammars
%dir %{_helix_runtimedir}/grammars
%{_helix_runtimedir}/grammars/*
# Queries
%dir %{_helix_runtimedir}/queries
%{_helix_runtimedir}/queries/*
# Themes
%dir %{_helix_runtimedir}/themes
%{_helix_runtimedir}/themes/*
%files bash-completion
%{_datadir}/bash-completion/completions/hx
%files fish-completion
%{_datadir}/fish/vendor_completions.d/hx.fish
%files zsh-completion
%{_datadir}/zsh/site-functions/_hx
%changelog

3
vendor.tar.zst Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a186a4cfd8b7587c407c32eea3d163d09ee8bd631a1638b98adcfd0f6d9241d3
size 26588832