8cc3b094d23afaa5cad9326831e2cc461a586296
This change introduces a new `Action` implementation to sort lines by their `char` length. It reuses the same calculation as used for getting the caret column position, i.e. `TextSummary`. The motivation is to e.g. handle source code where this sort of order matters ([example](https://github.com/alexpovel/srgn/blob/fdf537c3d3e4c18ebf3426bb34759400552a82c3/tests/readme.rs#L529-L535)). Tested manually via `cargo build && ./target/debug/zed .`: the new action shows up in the command palette, and testing it on `.mailmap` entries turns those from ```text Agus Zubiaga <agus@zed.dev> Agus Zubiaga <agus@zed.dev> <hi@aguz.me> Alex Viscreanu <alexviscreanu@gmail.com> Alex Viscreanu <alexviscreanu@gmail.com> <alexandru.viscreanu@kiwi.com> Alexander Mankuta <alex@pointless.one> Alexander Mankuta <alex@pointless.one> <alex+github@pointless.one> amtoaer <amtoaer@gmail.com> amtoaer <amtoaer@gmail.com> <amtoaer@outlook.com> Andrei Zvonimir Crnković <andrei@0x7f.dev> Andrei Zvonimir Crnković <andrei@0x7f.dev> <andreicek@0x7f.dev> Angelk90 <angelo.k90@hotmail.it> Angelk90 <angelo.k90@hotmail.it> <20476002+Angelk90@users.noreply.github.com> Antonio Scandurra <me@as-cii.com> Antonio Scandurra <me@as-cii.com> <antonio@zed.dev> Ben Kunkle <ben@zed.dev> Ben Kunkle <ben@zed.dev> <ben.kunkle@gmail.com> Bennet Bo Fenner <bennet@zed.dev> Bennet Bo Fenner <bennet@zed.dev> <53836821+bennetbo@users.noreply.github.com> Bennet Bo Fenner <bennet@zed.dev> <bennetbo@gmx.de> Boris Cherny <boris@anthropic.com> Boris Cherny <boris@anthropic.com> <boris@performancejs.com> Brian Tan <brian.tan88@gmail.com> Chris Hayes <chris+git@hayes.software> Christian Bergschneider <christian.bergschneider@gmx.de> Christian Bergschneider <christian.bergschneider@gmx.de> <magiclake@gmx.de> Conrad Irwin <conrad@zed.dev> Conrad Irwin <conrad@zed.dev> <conrad.irwin@gmail.com> Dairon Medina <dairon.medina@gmail.com> Danilo Leal <danilo@zed.dev> Danilo Leal <danilo@zed.dev> <67129314+danilo-leal@users.noreply.github.com> Edwin Aronsson <75266237+4teapo@users.noreply.github.com> Elvis Pranskevichus <elvis@geldata.com> Elvis Pranskevichus <elvis@geldata.com> <elvis@magic.io> Evren Sen <nervenes@icloud.com> Evren Sen <nervenes@icloud.com> <146845123+evrensen467@users.noreply.github.com> Evren Sen <nervenes@icloud.com> <146845123+evrsen@users.noreply.github.com> Fernando Tagawa <tagawafernando@gmail.com> Fernando Tagawa <tagawafernando@gmail.com> <fernando.tagawa.gamail.com@gmail.com> Finn Evers <dev@bahn.sh> Finn Evers <dev@bahn.sh> <75036051+MrSubidubi@users.noreply.github.com> Finn Evers <dev@bahn.sh> <finn.evers@outlook.de> Gowtham K <73059450+dovakin0007@users.noreply.github.com> Greg Morenz <greg-morenz@droid.cafe> Greg Morenz <greg-morenz@droid.cafe> <morenzg@gmail.com> Ihnat Aŭtuška <autushka.ihnat@gmail.com> Ivan Žužak <izuzak@gmail.com> Ivan Žužak <izuzak@gmail.com> <ivan.zuzak@github.com> Joseph T. Lyons <JosephTLyons@gmail.com> Joseph T. Lyons <JosephTLyons@gmail.com> <JosephTLyons@users.noreply.github.com> Julia <floc@unpromptedtirade.com> Julia <floc@unpromptedtirade.com> <30666851+ForLoveOfCats@users.noreply.github.com> Kaylee Simmons <kay@the-simmons.net> Kaylee Simmons <kay@the-simmons.net> <kay@zed.dev> Kaylee Simmons <kay@the-simmons.net> <keith@the-simmons.net> Kaylee Simmons <kay@the-simmons.net> <keith@zed.dev> Kirill Bulatov <kirill@zed.dev> Kirill Bulatov <kirill@zed.dev> <mail4score@gmail.com> Kyle Caverly <kylebcaverly@gmail.com> Kyle Caverly <kylebcaverly@gmail.com> <kyle@zed.dev> Lilith Iris <itslirissama@gmail.com> Lilith Iris <itslirissama@gmail.com> <83819417+Irilith@users.noreply.github.com> LoganDark <contact@logandark.mozmail.com> LoganDark <contact@logandark.mozmail.com> <git@logandark.mozmail.com> LoganDark <contact@logandark.mozmail.com> <github@logandark.mozmail.com> Marko Kungla <marko.kungla@gmail.com> Marko Kungla <marko.kungla@gmail.com> <marko@mkungla.dev> Marshall Bowers <git@maxdeviant.com> Marshall Bowers <git@maxdeviant.com> <elliott.codes@gmail.com> Marshall Bowers <git@maxdeviant.com> <marshall@zed.dev> Matt Fellenz <matt@felle.nz> Matt Fellenz <matt@felle.nz> <matt+github@felle.nz> Max Brunsfeld <maxbrunsfeld@gmail.com> Max Brunsfeld <maxbrunsfeld@gmail.com> <max@zed.dev> Max Linke <maxlinke88@gmail.com> Max Linke <maxlinke88@gmail.com> <kain88-de@users.noreply.github.com> Michael Sloan <michael@zed.dev> Michael Sloan <michael@zed.dev> <mgsloan@gmail.com> Michael Sloan <michael@zed.dev> <mgsloan@google.com> Mikayla Maki <mikayla@zed.dev> Mikayla Maki <mikayla@zed.dev> <mikayla.c.maki@gmail.com> Mikayla Maki <mikayla@zed.dev> <mikayla.c.maki@icloud.com> Morgan Krey <morgan@zed.dev> Muhammad Talal Anwar <mail@talal.io> Muhammad Talal Anwar <mail@talal.io> <talalanwar@outlook.com> Nate Butler <iamnbutler@gmail.com> Nate Butler <iamnbutler@gmail.com> <nate@zed.dev> Nathan Sobo <nathan@zed.dev> Nathan Sobo <nathan@zed.dev> <nathan@warp.dev> Nathan Sobo <nathan@zed.dev> <nathansobo@gmail.com> Nigel Jose <nigelmjose@gmail.com> Nigel Jose <nigelmjose@gmail.com> <nigel.jose@student.manchester.ac.uk> Peter Tripp <peter@zed.dev> Peter Tripp <peter@zed.dev> <petertripp@gmail.com> Petros Amoiridis <petros@hey.com> Petros Amoiridis <petros@hey.com> <petros@zed.dev> Piotr Osiewicz <piotr@zed.dev> Piotr Osiewicz <piotr@zed.dev> <24362066+osiewicz@users.noreply.github.com> Pocæus <github@pocaeus.com> Pocæus <github@pocaeus.com> <pseudomata@proton.me> Rashid Almheiri <r.muhairi@pm.me> Rashid Almheiri <r.muhairi@pm.me> <69181766+huwaireb@users.noreply.github.com> Richard Feldman <oss@rtfeldman.com> Richard Feldman <oss@rtfeldman.com> <richard@zed.dev> Robert Clover <git@clo4.net> Robert Clover <git@clo4.net> <robert@clover.gdn> Roy Williams <roy.williams.iii@gmail.com> Roy Williams <roy.williams.iii@gmail.com> <roy@anthropic.com> Sebastijan Kelnerič <sebastijan.kelneric@sebba.dev> Sebastijan Kelnerič <sebastijan.kelneric@sebba.dev> <sebastijan.kelneric@vichava.com> Sergey Onufrienko <sergey@onufrienko.com> Shish <webmaster@shishnet.org> Shish <webmaster@shishnet.org> <shish@shishnet.org> Smit Barmase <0xtimsb@gmail.com> Smit Barmase <0xtimsb@gmail.com> <smit@zed.dev> Thomas <github.thomaub@gmail.com> Thomas <github.thomaub@gmail.com> <thomas.aubry94@gmail.com> Thomas <github.thomaub@gmail.com> <thomas.aubry@paylead.fr> Thomas Heartman <thomasheartman+github@gmail.com> Thomas Heartman <thomasheartman+github@gmail.com> <thomas@getunleash.io> Thomas Mickley-Doyle <tmickleydoyle@gmail.com> Thomas Mickley-Doyle <tmickleydoyle@gmail.com> <thomas@zed.dev> Thorben Kröger <dev@thorben.net> Thorben Kröger <dev@thorben.net> <thorben.kroeger@hexagon.com> Thorsten Ball <mrnugget@gmail.com> Thorsten Ball <mrnugget@gmail.com> <me@thorstenball.com> Thorsten Ball <mrnugget@gmail.com> <thorsten@zed.dev> Tristan Hume <tris.hume@gmail.com> Tristan Hume <tris.hume@gmail.com> <tristan@anthropic.com> Uladzislau Kaminski <i@uladkaminski.com> Uladzislau Kaminski <i@uladkaminski.com> <uladzislau_kaminski@epam.com> Vitaly Slobodin <vitaliy.slobodin@gmail.com> Vitaly Slobodin <vitaliy.slobodin@gmail.com> <vitaly_slobodin@fastmail.com> Will Bradley <williambbradley@gmail.com> Will Bradley <williambbradley@gmail.com> <will@zed.dev> WindSoilder <WindSoilder@outlook.com> 张小白 <364772080@qq.com> ```` into ```text 张小白 <364772080@qq.com> Ben Kunkle <ben@zed.dev> Finn Evers <dev@bahn.sh> Agus Zubiaga <agus@zed.dev> amtoaer <amtoaer@gmail.com> Peter Tripp <peter@zed.dev> Pocæus <github@pocaeus.com> Danilo Leal <danilo@zed.dev> Matt Fellenz <matt@felle.nz> Morgan Krey <morgan@zed.dev> Nathan Sobo <nathan@zed.dev> Robert Clover <git@clo4.net> Conrad Irwin <conrad@zed.dev> Ivan Žužak <izuzak@gmail.com> Mikayla Maki <mikayla@zed.dev> Piotr Osiewicz <piotr@zed.dev> Shish <webmaster@shishnet.org> Evren Sen <nervenes@icloud.com> Kirill Bulatov <kirill@zed.dev> Michael Sloan <michael@zed.dev> Angelk90 <angelo.k90@hotmail.it> Max Linke <maxlinke88@gmail.com> Smit Barmase <0xtimsb@gmail.com> Thorben Kröger <dev@thorben.net> Antonio Scandurra <me@as-cii.com> Bennet Bo Fenner <bennet@zed.dev> Brian Tan <brian.tan88@gmail.com> Julia <floc@unpromptedtirade.com> Nigel Jose <nigelmjose@gmail.com> Petros Amoiridis <petros@hey.com> Rashid Almheiri <r.muhairi@pm.me> Thomas <github.thomaub@gmail.com> Boris Cherny <boris@anthropic.com> Nate Butler <iamnbutler@gmail.com> Thorsten Ball <mrnugget@gmail.com> Tristan Hume <tris.hume@gmail.com> Richard Feldman <oss@rtfeldman.com> Greg Morenz <greg-morenz@droid.cafe> Kaylee Simmons <kay@the-simmons.net> Lilith Iris <itslirissama@gmail.com> Marshall Bowers <git@maxdeviant.com> Muhammad Talal Anwar <mail@talal.io> Kyle Caverly <kylebcaverly@gmail.com> Marko Kungla <marko.kungla@gmail.com> WindSoilder <WindSoilder@outlook.com> Alexander Mankuta <alex@pointless.one> Chris Hayes <chris+git@hayes.software> Max Brunsfeld <maxbrunsfeld@gmail.com> Dairon Medina <dairon.medina@gmail.com> Elvis Pranskevichus <elvis@geldata.com> Agus Zubiaga <agus@zed.dev> <hi@aguz.me> Alex Viscreanu <alexviscreanu@gmail.com> Ihnat Aŭtuška <autushka.ihnat@gmail.com> Joseph T. Lyons <JosephTLyons@gmail.com> Uladzislau Kaminski <i@uladkaminski.com> Will Bradley <williambbradley@gmail.com> LoganDark <contact@logandark.mozmail.com> Roy Williams <roy.williams.iii@gmail.com> Sergey Onufrienko <sergey@onufrienko.com> Andrei Zvonimir Crnković <andrei@0x7f.dev> Fernando Tagawa <tagawafernando@gmail.com> Vitaly Slobodin <vitaliy.slobodin@gmail.com> Nathan Sobo <nathan@zed.dev> <nathan@warp.dev> Thomas Mickley-Doyle <tmickleydoyle@gmail.com> Ben Kunkle <ben@zed.dev> <ben.kunkle@gmail.com> Smit Barmase <0xtimsb@gmail.com> <smit@zed.dev> Finn Evers <dev@bahn.sh> <finn.evers@outlook.de> Robert Clover <git@clo4.net> <robert@clover.gdn> amtoaer <amtoaer@gmail.com> <amtoaer@outlook.com> Nate Butler <iamnbutler@gmail.com> <nate@zed.dev> Thomas Heartman <thomasheartman+github@gmail.com> Kaylee Simmons <kay@the-simmons.net> <kay@zed.dev> Peter Tripp <peter@zed.dev> <petertripp@gmail.com> Petros Amoiridis <petros@hey.com> <petros@zed.dev> Pocæus <github@pocaeus.com> <pseudomata@proton.me> Antonio Scandurra <me@as-cii.com> <antonio@zed.dev> Bennet Bo Fenner <bennet@zed.dev> <bennetbo@gmx.de> Matt Fellenz <matt@felle.nz> <matt+github@felle.nz> Michael Sloan <michael@zed.dev> <mgsloan@gmail.com> Nathan Sobo <nathan@zed.dev> <nathansobo@gmail.com> Sebastijan Kelnerič <sebastijan.kelneric@sebba.dev> Shish <webmaster@shishnet.org> <shish@shishnet.org> Kaylee Simmons <kay@the-simmons.net> <keith@zed.dev> Kyle Caverly <kylebcaverly@gmail.com> <kyle@zed.dev> Max Brunsfeld <maxbrunsfeld@gmail.com> <max@zed.dev> Michael Sloan <michael@zed.dev> <mgsloan@google.com> Ivan Žužak <izuzak@gmail.com> <ivan.zuzak@github.com> Richard Feldman <oss@rtfeldman.com> <richard@zed.dev> Thorsten Ball <mrnugget@gmail.com> <thorsten@zed.dev> Conrad Irwin <conrad@zed.dev> <conrad.irwin@gmail.com> Kirill Bulatov <kirill@zed.dev> <mail4score@gmail.com> Marshall Bowers <git@maxdeviant.com> <marshall@zed.dev> Will Bradley <williambbradley@gmail.com> <will@zed.dev> Christian Bergschneider <christian.bergschneider@gmx.de> Elvis Pranskevichus <elvis@geldata.com> <elvis@magic.io> Greg Morenz <greg-morenz@droid.cafe> <morenzg@gmail.com> Thorsten Ball <mrnugget@gmail.com> <me@thorstenball.com> Edwin Aronsson <75266237+4teapo@users.noreply.github.com> Gowtham K <73059450+dovakin0007@users.noreply.github.com> Marko Kungla <marko.kungla@gmail.com> <marko@mkungla.dev> Mikayla Maki <mikayla@zed.dev> <mikayla.c.maki@gmail.com> Mikayla Maki <mikayla@zed.dev> <mikayla.c.maki@icloud.com> Tristan Hume <tris.hume@gmail.com> <tristan@anthropic.com> Thomas <github.thomaub@gmail.com> <thomas.aubry@paylead.fr> Boris Cherny <boris@anthropic.com> <boris@performancejs.com> Kaylee Simmons <kay@the-simmons.net> <keith@the-simmons.net> Thomas <github.thomaub@gmail.com> <thomas.aubry94@gmail.com> Muhammad Talal Anwar <mail@talal.io> <talalanwar@outlook.com> Roy Williams <roy.williams.iii@gmail.com> <roy@anthropic.com> Marshall Bowers <git@maxdeviant.com> <elliott.codes@gmail.com> Thorben Kröger <dev@thorben.net> <thorben.kroeger@hexagon.com> Andrei Zvonimir Crnković <andrei@0x7f.dev> <andreicek@0x7f.dev> Thomas Mickley-Doyle <tmickleydoyle@gmail.com> <thomas@zed.dev> Alexander Mankuta <alex@pointless.one> <alex+github@pointless.one> LoganDark <contact@logandark.mozmail.com> <git@logandark.mozmail.com> Max Linke <maxlinke88@gmail.com> <kain88-de@users.noreply.github.com> Alex Viscreanu <alexviscreanu@gmail.com> <alexandru.viscreanu@kiwi.com> Finn Evers <dev@bahn.sh> <75036051+MrSubidubi@users.noreply.github.com> Nigel Jose <nigelmjose@gmail.com> <nigel.jose@student.manchester.ac.uk> Uladzislau Kaminski <i@uladkaminski.com> <uladzislau_kaminski@epam.com> LoganDark <contact@logandark.mozmail.com> <github@logandark.mozmail.com> Thomas Heartman <thomasheartman+github@gmail.com> <thomas@getunleash.io> Christian Bergschneider <christian.bergschneider@gmx.de> <magiclake@gmx.de> Evren Sen <nervenes@icloud.com> <146845123+evrsen@users.noreply.github.com> Piotr Osiewicz <piotr@zed.dev> <24362066+osiewicz@users.noreply.github.com> Vitaly Slobodin <vitaliy.slobodin@gmail.com> <vitaly_slobodin@fastmail.com> Danilo Leal <danilo@zed.dev> <67129314+danilo-leal@users.noreply.github.com> Angelk90 <angelo.k90@hotmail.it> <20476002+Angelk90@users.noreply.github.com> Bennet Bo Fenner <bennet@zed.dev> <53836821+bennetbo@users.noreply.github.com> Rashid Almheiri <r.muhairi@pm.me> <69181766+huwaireb@users.noreply.github.com> Evren Sen <nervenes@icloud.com> <146845123+evrensen467@users.noreply.github.com> Joseph T. Lyons <JosephTLyons@gmail.com> <JosephTLyons@users.noreply.github.com> Lilith Iris <itslirissama@gmail.com> <83819417+Irilith@users.noreply.github.com> Fernando Tagawa <tagawafernando@gmail.com> <fernando.tagawa.gamail.com@gmail.com> Julia <floc@unpromptedtirade.com> <30666851+ForLoveOfCats@users.noreply.github.com> Sebastijan Kelnerič <sebastijan.kelneric@sebba.dev> <sebastijan.kelneric@vichava.com> ``` which looks good. There's a bit of Unicode in there -- though no grapheme clusters. Column number calculations do not seem to handle grapheme clusters either (?) so I thought this is OK. Open questions are: - should this be added to vim mode as well? - is `TextSummary` the way to go here? Is it perhaps too expensive? (it seems fine -- manually counting `char`s seems more brittle -- this way it will stay in sync with column number calculations) --- Team, I realize you [ask for a discussion to be opened first](https://github.com/zed-industries/zed/blob/86161aa427b9e8b18486272ca436c344224e8ba4/CONTRIBUTING.md#L32), so apologies for not doing that! It turned out hacking on Zed was much easier than expected (it's really nice!), and this change is small, adding a variation to an existing feature. Hope that's fine. Release Notes: - Added feature to sort lines by their length --------- Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Zed
Welcome to Zed, a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
Installation
On macOS and Linux you can download Zed directly or install Zed via your local package manager.
Other platforms are not yet available:
- Windows (tracking issue)
- Web (tracking issue)
Developing Zed
- Building Zed for macOS
- Building Zed for Linux
- Building Zed for Windows
- Running Collaboration Locally
Contributing
See CONTRIBUTING.md for ways you can contribute to Zed.
Also... we're hiring! Check out our jobs page for open roles.
Licensing
License information for third party dependencies must be correctly provided for CI to pass.
We use cargo-about to automatically comply with open source licenses. If CI is failing, check the following:
- Is it showing a
no license specifiederror for a crate you've created? If so, addpublish = falseunder[package]in your crate's Cargo.toml. - Is the error
failed to satisfy license requirementsfor a dependency? If so, first determine what license the project has and whether this system is sufficient to comply with this license's requirements. If you're unsure, ask a lawyer. Once you've verified that this system is acceptable add the license's SPDX identifier to theacceptedarray inscript/licenses/zed-licenses.toml. - Is
cargo-aboutunable to find the license for a dependency? If so, add a clarification field at the end ofscript/licenses/zed-licenses.toml, as specified in the cargo-about book.
Description
GPUI – Community Edition maintained by Oak Team
https://gpui-ce.github.io/
258 MiB
Languages
Rust
95.6%
WGSL
1.2%
Metal
1.1%
HLSL
1.1%
Python
0.6%
Other
0.3%