[package]
edition = "2021"
name = "fresh-editor"
version = "0.3.2"
authors = ["Noam Lewis"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "fresh"
description = "A lightweight, fast terminal-based text editor with LSP support and TypeScript plugins"
homepage = "https://sinelaw.github.io/fresh/"
readme = false
keywords = [
"editor",
"terminal",
"tui",
"text-editor",
"lsp",
]
categories = [
"command-line-utilities",
"text-editors",
]
license = "GPL-2.0"
repository = "https://github.com/sinelaw/fresh"
[package.metadata.dist]
changelog = "../../CHANGELOG.md"
[package.metadata.deb]
maintainer = "Noam Lewis"
section = "editors"
priority = "optional"
depends = "$auto"
assets = [
[
"target/release/fresh",
"usr/share/fresh-editor/",
"755",
],
[
"../../README.md",
"usr/share/doc/fresh-editor/",
"644",
],
[
"plugins/*",
"usr/share/fresh-editor/plugins/",
"644",
],
[
"plugins/lib/*",
"usr/share/fresh-editor/plugins/lib/",
"644",
],
[
"plugins/examples/*",
"usr/share/fresh-editor/plugins/examples/",
"644",
],
[
"themes/*",
"usr/share/fresh-editor/themes/",
"644",
],
[
"../../docs/icons/linux/hicolor/16x16/apps/fresh.png",
"usr/share/icons/hicolor/16x16/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/22x22/apps/fresh.png",
"usr/share/icons/hicolor/22x22/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/24x24/apps/fresh.png",
"usr/share/icons/hicolor/24x24/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/32x32/apps/fresh.png",
"usr/share/icons/hicolor/32x32/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/48x48/apps/fresh.png",
"usr/share/icons/hicolor/48x48/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/64x64/apps/fresh.png",
"usr/share/icons/hicolor/64x64/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/128x128/apps/fresh.png",
"usr/share/icons/hicolor/128x128/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/256x256/apps/fresh.png",
"usr/share/icons/hicolor/256x256/apps/",
"644",
],
[
"../../docs/icons/linux/hicolor/512x512/apps/fresh.png",
"usr/share/icons/hicolor/512x512/apps/",
"644",
],
[
"resources/fresh.desktop",
"usr/share/applications/",
"644",
],
]
maintainer-scripts = "debian/"
extended-description = """
Fresh is a lightweight, fast terminal-based text editor with LSP support
and TypeScript plugins. It provides syntax highlighting, code completion,
and other IDE-like features in a minimal terminal interface."""
[package.metadata.generate-rpm]
post_trans_script = """
if [ ! -e /usr/bin/fresh ]; then
cat > /usr/bin/fresh << 'WRAPPER'
#!/bin/sh
exec /usr/share/fresh-editor/fresh "$@"
WRAPPER
chmod 755 /usr/bin/fresh
fi
"""
[[package.metadata.generate-rpm.assets]]
source = "target/release/fresh"
dest = "/usr/share/fresh-editor/fresh"
mode = "755"
[[package.metadata.generate-rpm.assets]]
source = "scripts/fresh-wrapper.sh"
dest = "/usr/bin/fresh"
mode = "755"
[[package.metadata.generate-rpm.assets]]
source = "../../README.md"
dest = "/usr/share/doc/fresh-editor/README.md"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "plugins/*.ts"
dest = "/usr/share/fresh-editor/plugins/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "plugins/*.json"
dest = "/usr/share/fresh-editor/plugins/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "plugins/*.md"
dest = "/usr/share/fresh-editor/plugins/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "plugins/lib/*"
dest = "/usr/share/fresh-editor/plugins/lib/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "plugins/examples/*"
dest = "/usr/share/fresh-editor/plugins/examples/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "themes/*.json"
dest = "/usr/share/fresh-editor/themes/"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/16x16/apps/fresh.png"
dest = "/usr/share/icons/hicolor/16x16/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/22x22/apps/fresh.png"
dest = "/usr/share/icons/hicolor/22x22/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/24x24/apps/fresh.png"
dest = "/usr/share/icons/hicolor/24x24/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/32x32/apps/fresh.png"
dest = "/usr/share/icons/hicolor/32x32/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/48x48/apps/fresh.png"
dest = "/usr/share/icons/hicolor/48x48/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/64x64/apps/fresh.png"
dest = "/usr/share/icons/hicolor/64x64/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/128x128/apps/fresh.png"
dest = "/usr/share/icons/hicolor/128x128/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/256x256/apps/fresh.png"
dest = "/usr/share/icons/hicolor/256x256/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "../../docs/icons/linux/hicolor/512x512/apps/fresh.png"
dest = "/usr/share/icons/hicolor/512x512/apps/fresh.png"
mode = "644"
[[package.metadata.generate-rpm.assets]]
source = "resources/fresh.desktop"
dest = "/usr/share/applications/fresh.desktop"
mode = "644"
[features]
default = [
"plugins",
"runtime",
"embed-plugins",
]
dev-bins = [
"dep:ratatui",
"dep:vt100",
]
embed-plugins = [
"plugins",
"dep:include_dir",
"dep:trash",
]
plugins = [
"dep:fresh-plugin-runtime",
"dep:fresh-parser-js",
"dep:fresh-plugin-api-macros",
]
runtime = [
"dep:crossterm",
"dep:ratatui",
"ratatui/crossterm",
"dep:chrono",
"dep:clap",
"dep:tracing-subscriber",
"dep:fresh-languages",
"dep:lsp-types",
"dep:tokio",
"dep:async-trait",
"dep:ignore",
"dep:libc",
"dep:libloading",
"dep:nix",
"dep:pulldown-cmark",
"dep:sha2",
"dep:arboard",
"dep:syntect",
"syntect/regex-onig",
"syntect/parsing",
"syntect/dump-load",
"syntect/dump-create",
"syntect/yaml-load",
"syntect/default-syntaxes",
"syntect/default-themes",
"dep:ureq",
"dep:alacritty_terminal",
"dep:portable-pty",
"dep:trash",
"dep:open",
]
schema-only = []
wasm = [
"dep:ratatui",
"dep:crossterm",
"dep:syntect",
"syntect/regex-fancy",
"syntect/parsing",
"syntect/dump-load",
"syntect/yaml-load",
"syntect/default-syntaxes",
"syntect/default-themes",
]
[lib]
name = "fresh"
path = "src/lib.rs"
[[bin]]
name = "event_debug"
path = "src/bin/event_debug.rs"
required-features = [
"dev-bins",
"runtime",
]
[[bin]]
name = "fresh"
path = "src/main.rs"
required-features = ["runtime"]
[[bin]]
name = "generate_schema"
path = "src/bin/generate_schema.rs"
required-features = ["dev-bins"]
[[bin]]
name = "measure_startup"
path = "src/bin/measure_startup.rs"
required-features = [
"dev-bins",
"runtime",
]
[[test]]
name = "e2e_tests"
path = "tests/e2e_tests.rs"
[[test]]
name = "focused_bug_test"
path = "tests/focused_bug_test.rs"
[[test]]
name = "harness_test"
path = "tests/harness_test.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "property_agent_tests"
path = "tests/property_agent_tests.rs"
[[test]]
name = "property_persistence_tests"
path = "tests/property_persistence_tests.rs"
[[test]]
name = "property_tests"
path = "tests/property_tests.rs"
[[test]]
name = "regression_hidden_cursor_panic"
path = "tests/regression_hidden_cursor_panic.rs"
[[test]]
name = "remote_channel_timeout_tests"
path = "tests/remote_channel_timeout_tests.rs"
[[test]]
name = "remote_filesystem_tests"
path = "tests/remote_filesystem_tests.rs"
[[test]]
name = "remote_poll_hang_tests"
path = "tests/remote_poll_hang_tests.rs"
[[test]]
name = "shadow_model_editor_state_tests"
path = "tests/shadow_model_editor_state_tests.rs"
[[test]]
name = "shadow_model_multi_cursor_tests"
path = "tests/shadow_model_multi_cursor_tests.rs"
[[test]]
name = "shadow_model_tests"
path = "tests/shadow_model_tests.rs"
[[test]]
name = "test_auto_save"
path = "tests/test_auto_save.rs"
[[test]]
name = "test_line_iterator_comprehensive"
path = "tests/test_line_iterator_comprehensive.rs"
[[test]]
name = "test_overlay_colors"
path = "tests/test_overlay_colors.rs"
[[test]]
name = "test_plugin_i18n"
path = "tests/test_plugin_i18n.rs"
[[test]]
name = "test_plugin_i18n_completeness"
path = "tests/test_plugin_i18n_completeness.rs"
[[test]]
name = "test_theme_schema_i18n"
path = "tests/test_theme_schema_i18n.rs"
[[test]]
name = "undo_redo_marker_roundtrip_tests"
path = "tests/undo_redo_marker_roundtrip_tests.rs"
[dependencies.alacritty_terminal]
version = "0.25"
optional = true
[dependencies.anyhow]
version = "1.0.100"
default-features = false
[dependencies.arboard]
version = "3.6"
features = ["wayland-data-control"]
optional = true
default-features = false
[dependencies.async-trait]
version = "0.1"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.chardetng]
version = "0.1"
[dependencies.chrono]
version = "0.4"
features = [
"std",
"clock",
]
optional = true
default-features = false
[dependencies.clap]
version = "4.5"
features = [
"derive",
"std",
"help",
"usage",
"error-context",
]
optional = true
default-features = false
[dependencies.crossterm]
version = "0.29.0"
features = ["osc52"]
optional = true
[dependencies.dirs]
version = "6.0"
[dependencies.encoding_rs]
version = "0.8"
[dependencies.fresh-core]
version = "0.3.2"
[dependencies.fresh-languages]
version = "0.3.2"
features = ["all-languages"]
optional = true
[dependencies.fresh-parser-js]
version = "0.3.2"
optional = true
[dependencies.fresh-plugin-api-macros]
version = "0.3.2"
optional = true
[dependencies.fresh-plugin-runtime]
version = "0.3.2"
optional = true
[dependencies.ignore]
version = "0.4"
optional = true
default-features = false
[dependencies.include_dir]
version = "0.7"
optional = true
[dependencies.interprocess]
version = "2.2"
features = ["tokio"]
[dependencies.libc]
version = "0.2"
optional = true
[dependencies.libloading]
version = "0.9"
optional = true
[dependencies.lsp-types]
version = "0.97"
optional = true
[dependencies.nix]
version = "0.31"
features = [
"signal",
"pthread",
"resource",
"poll",
"fs",
]
optional = true
[dependencies.once_cell]
version = "1.20"
[dependencies.open]
version = "5.3"
optional = true
[dependencies.oxc_allocator]
version = "0.115.0"
[dependencies.oxc_parser]
version = "0.115.0"
[dependencies.oxc_span]
version = "0.115.0"
[dependencies.portable-pty]
version = "0.9"
optional = true
[dependencies.pulldown-cmark]
version = "0.13"
optional = true
default-features = false
[dependencies.ratatui]
version = "0.30.0"
features = [
"std",
"underline-color",
]
optional = true
default-features = false
[dependencies.regex]
version = "1.12"
[dependencies.rust-i18n]
version = "3.1.5"
[dependencies.schemars]
version = "1.2"
features = ["preserve_order"]
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
optional = true
[dependencies.syntect]
version = "5.3"
optional = true
default-features = false
[dependencies.tempfile]
version = "3.25"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.49"
features = [
"fs",
"io-util",
"process",
"rt",
"rt-multi-thread",
"sync",
"time",
"macros",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
optional = true
[dependencies.trash]
version = "5.2.5"
optional = true
[dependencies.unicode-segmentation]
version = "1.12"
[dependencies.unicode-width]
version = "0.2"
[dependencies.ureq]
version = "3.1.4"
features = ["rustls"]
optional = true
default-features = false
[dependencies.vt100]
version = "0.16"
optional = true
[dependencies.which]
version = "6"
[dev-dependencies.ctor]
version = "0.6.3"
[dev-dependencies.insta]
version = "1.46"
features = ["yaml"]
[dev-dependencies.proptest]
version = "1.9"
[dev-dependencies.tempfile]
version = "3.25"
[dev-dependencies.tiny_http]
version = "0.12"
[dev-dependencies.unicode-segmentation]
version = "1.12"
[dev-dependencies.vt100]
version = "0.16"
[build-dependencies.serde_json]
version = "1.0"
[build-dependencies.syntect]
version = "5.3"
features = [
"parsing",
"dump-load",
"dump-create",
"yaml-load",
"default-syntaxes",
"regex-onig",
]
default-features = false
[target."cfg(windows)".dependencies.fresh-winterm]
version = "0.3.2"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
"Win32_Foundation",
"Win32_System_Threading",
"Win32_System_Console",
"Win32_System_LibraryLoader",
"Win32_Storage_FileSystem",
"Win32_Security",
]
[target."cfg(windows)".build-dependencies.winresource]
version = "0.1"