No description
  • Rust 91.5%
  • Python 4.7%
  • Shell 0.9%
  • Inno Setup 0.4%
  • PowerShell 0.3%
  • Other 1.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
DaTTV 2152b764b9
Some checks failed
Submit release to the WinGet community repository / Submit to WinGet repository (release) Has been skipped
ci/woodpecker/tag/release Pipeline was successful
CodeQL Advanced / Analyze (Rust) (push) Has been cancelled
CI / check (ubuntu-latest) (push) Has been cancelled
CI / check (windows-latest) (push) Has been cancelled
Use approved release plugin with tag-driven package publication
Keep the filtered release token exclusively in plugin-release, separate repository push authentication, and verify immutable release assets around plugin uploads. Document runtime-only ICU builds for server installs.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-19 21:15:10 +02:00
.cargo Fix Azure pipeline (again) (#807) 2026-04-20 15:09:30 -07:00
.devcontainer Add initial devcontainer configuration for Rust environment (#496) 2025-07-09 22:32:17 +02:00
.github Configure CodeQL (#956) 2026-09-18 20:34:02 +02:00
.pipelines Add an Inno Setup Installer (#915) 2026-08-27 22:52:08 +02:00
.vscode Sanitize all text before printing (#913) 2026-08-11 00:30:34 +02:00
.woodpecker Use approved release plugin with tag-driven package publication 2026-09-19 21:15:10 +02:00
assets Add broad native syntax highlighting and Woodpecker fork releases 2026-09-19 20:18:11 +02:00
ci Use approved release plugin with tag-driven package publication 2026-09-19 21:15:10 +02:00
crates Add broad native syntax highlighting and Woodpecker fork releases 2026-09-19 20:18:11 +02:00
docs Use approved release plugin with tag-driven package publication 2026-09-19 21:15:10 +02:00
fuzz Add a small fuzzing harness for LSH (#782) 2026-03-27 22:17:56 +01:00
i18n Add Norwegian translations (#914) 2026-08-11 12:14:24 +00:00
.gitignore Add broad native syntax highlighting and Woodpecker fork releases 2026-09-19 20:18:11 +02:00
Cargo.lock Prepare for v2.0.0 (#785) 2026-03-30 20:10:17 +02:00
Cargo.toml Use Cargo v3 resolver (#905) 2026-07-31 13:13:00 +00:00
CODE_OF_CONDUCT.md Add mandatory Microsoft project files 2025-04-07 14:51:17 +02:00
CONTRIBUTING.md Fix CONTRIBUTING.md localization path (#601) 2025-08-05 21:09:40 +00:00
LICENSE Initial import 2025-03-19 03:13:50 +01:00
README.md Use approved release plugin with tag-driven package publication 2026-09-19 21:15:10 +02:00
rustfmt.toml Ensure LF line endings 2025-05-17 20:50:47 +02:00
SECURITY.md Add mandatory Microsoft project files 2025-04-07 14:51:17 +02:00

Application Icon for Edit Edit

A simple editor for simple needs.

Unofficial DaTTV fork: Microsoft Edit with expanded, built-in syntax highlighting and Woodpecker-managed upstream updates and releases. This fork is not an official Microsoft distribution. Upstream licensing and acknowledgements are preserved.

The upstream installation instructions below install Microsoft's original distribution, not this fork. Use the fork installation guide above for the additional highlighting definitions.

This editor pays homage to the classic MS-DOS Editor, but with a modern interface and input controls similar to VS Code. The goal is to provide an accessible editor that even users largely unfamiliar with terminals can easily use.

Screenshot of Edit with the About dialog in the foreground

Install this fork with Cargo

Install Rust 1.93 or newer, a C compiler/linker, and ICU (on Debian/Ubuntu: build-essential libicu-dev; on Arch: base-devel icu). Windows source builds also need a Rust-compatible Windows linker/toolchain.

Add the following registry to ~/.cargo/config.toml (Windows: %USERPROFILE%\.cargo\config.toml), keeping any existing configuration:

[registries.forgejo]
index = "sparse+https://dajo.freezy.me/api/packages/DaTTV/cargo/"
credential-provider = "cargo:token"

Choose the full version from the fork releases and install the published crate:

cargo install --registry forgejo --version 'EXACT_VERSION_FROM_RELEASE' --locked edit
edit --version
edit path/to/file.lua

Cargo installs into ~/.cargo/bin by default; ensure it is on your PATH. The same command works over SSH on a machine with a supported Rust toolchain. On servers with only versioned ICU runtime libraries, see the ICU configuration instructions; no system package installation is needed if those libraries and a C linker are available. Public packages do not require a publishing token. If package reads are private, see the authentication instructions. Inspect any existing edit command before replacing it; do not add --force unless you intend to replace that executable.

If packages have not been published yet, the distinct Git-source alternative is:

cargo install --git https://dajo.freezy.me/DaTTV/Edit.git --locked edit

This is not a registry installation. See the full installation guide for Linux/Windows binary downloads, version selection, and ICU requirements.

Upstream installation (not this fork)

Packaging status

You can also download binaries from our Releases page.

Windows

You can install the latest version with WinGet:

winget install Microsoft.Edit

Linux (build from source)

If your distribution does not provide binaries, or if you'd like to build your own, you can use our install script, provided you have installed:

  • Rust (via rustup or similar)
  • A C compiler (e.g. gcc)
  • ICU (e.g. libicu78, libicu, icu)
  • curl/wget and tar

The following command will then install msedit into ~/.local/bin:

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/main/assets/install.sh | sh

Additional flags are --dev, to build directly from the main branch, and --system to install into /usr/local/bin. For instance:

curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/microsoft/edit/main/assets/install.sh | sh -s -- --dev --system

macOS

You can install the latest version with Homebrew:

brew install msedit

Build Instructions

  • Install Rust
  • Clone the repository
  • If you're using nightly Rust:
    cargo build --release --config .cargo/release.toml
    
  • If you're using stable Rust:
    • Ideally: Set the environment variable RUSTC_BOOTSTRAP=1 and use the nightly build instructions above. This is recommended, because it drastically reduces the binary size and slightly improves performance.
    • Otherwise, simply run:
      cargo build --release
      

Build Configuration

You can set the following environment variables at build-time to configure the build:

Environment variable Description
EDIT_CFG_ICU* See ICU library name (SONAME) below for details. Linux package maintainers are advised to review and configure these options.
EDIT_CFG_LANGUAGES A comma-separated list of languages to include in the build. See i18n/edit.toml for available languages.

Notes to Package Maintainers

Package Naming

The canonical executable name is "edit" and the alternative name is "msedit". We're aware of the potential conflict of "edit" with existing commands and recommend alternatively naming packages and executables "msedit". Names such as "ms-edit" should be avoided. Assigning an "edit" alias is recommended, if possible.

ICU library name (SONAME)

This project optionally depends on the ICU library for its Search and Replace functionality.

By default, the project will look for the following library names:

Variable Windows macOS Linux / Other
EDIT_CFG_ICUUC_SONAME icuuc.dll libicucore.dylib libicuuc.so
EDIT_CFG_ICUI18N_SONAME icuin.dll libicucore.dylib libicui18n.so

If your installation uses a different SONAME, please set the following environment variable at build time:

  • EDIT_CFG_ICUUC_SONAME: For instance, libicuuc.so.76.
  • EDIT_CFG_ICUI18N_SONAME: For instance, libicui18n.so.76.

Additionally, this project assumes that the ICU exports symbols without _ prefix and without version suffix, such as u_errorName. If your installation uses versioned exports, please set:

  • EDIT_CFG_ICU_CPP_EXPORTS: If set to true, it'll look for C++ symbols such as _u_errorName. Enabled by default on macOS.
  • EDIT_CFG_ICU_RENAMING_VERSION: If set to a version number, such as 76, it'll look for symbols such as u_errorName_76.

Finally, you can set the following environment variables:

  • EDIT_CFG_ICU_RENAMING_AUTO_DETECT: If set to true, the executable will try to detect the EDIT_CFG_ICU_RENAMING_VERSION value at runtime. The way it does this is not officially supported by ICU and as such is not recommended to be relied upon. Enabled by default on UNIX (excluding macOS) if no other options are set.

To test your build settings, run cargo test with the --ignored flag. For instance:

cargo test -- --ignored