mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
## **Description:** **Context:** This PR introduces an initial CSV preview feature for Zed, building upon two previously merged infrastructure PRs: - [#46341](https://github.com/zed-industries/zed/pull/46341) - Data table dynamic column support (removed const generics) - [#46190](https://github.com/zed-industries/zed/pull/46190) - Variable row height mode for data tables This implementation is based on the [original draft PR #44344](https://github.com/zed-industries/zed/pull/44344), which has been carefully decomposed into smaller, reviewable pieces. --- #### **Features Included:** **Core Infrastructure:** - Live CSV parsing with smart debouncing (200ms cooldown) - Performance monitoring with built-in timing metrics (not displayed in UI yet) - Automatic file change detection and re-parsing - Support for quoted fields, multiline cells, and escaped characters **Table Display:** - Variable row height rendering with fallback to uniform mode (switchable via settings) - Draggable column resizing (reusing existing data table infrastructure) - Row identifiers supporting both source line numbers and sequential row numbers - Configurable font rendering (UI font vs monospace) - Tooltips showing full cell content on hover **Interactive Features:** - Column sorting (ascending/descending) with visual indicators **Settings Panel:** - Toggle between variable/uniform row rendering - Font type selection (UI/monospace) - Row identifier type configuration - Debug information display - Multiline cell rendering options --- #### **Features Intentionally Removed for This PR:** To reduce complexity and review scope, the following features were temporarily reverted and will be reintroduced in subsequent PRs: - ❌ Settings pannel with performance metrics overlay - ❌ Cell selection (single, multiple, and range selections) - ❌ Keyboard navigation with arrow keys and selection extension - ❌ Copy functionality supporting CSV, TSV, and Markdown table formats - ❌ Inline cell editing with file persistence - ❌ Viewport following for large datasets - ❌ Column filtering and search capabilities These removals were done via "time-machine" commits that cleanly nuked vertical slices of functionality from the complete implementation. --- **Technical Implementation:** The feature is organized into a dedicated `csv_preview` crate with the following structure: ``` crates/csv_preview/ ├── src/ │ ├── csv_preview.rs # Main view and coordination logic │ ├── parser.rs # CSV parsing and editor integration │ ├── settings.rs # Configuration types and defaults │ ├── table_data_engine.rs # Data transformation logic │ ├── renderer/ # UI rendering modules │ │ ├── preview_view.rs # Main render implementation │ │ ├── render_table.rs # Table component assembly │ │ ├── table_cell.rs # Individual cell rendering │ │ ├── table_header.rs # Header with sorting controls │ │ └── row_identifiers.rs # Line number column │ └── types/ # Core data structures │ ├── table_like_content.rs │ ├── coordinates.rs # Display vs data coordinate systems │ └── table_cell.rs ``` **Key architectural decisions:** - **Dual coordinate system**: Separates data indices from display indices to support sorting/filtering - **Component reuse**: Leverages existing `data_table` infrastructure from the keymap editor --- **Integration:** - Registers `csv::OpenPreview` action (currently without default keybindings) - Follows the same workspace integration pattern as `markdown_preview` and `svg_preview` - Automatically detects `.csv` file extensions - Tab integration with appropriate icons and naming --- **Code Structure Note:** Some code structures, types, and documentation may appear redundant or over-engineered in this initial implementation. This is intentional - the feature was developed as a complete system and then decomposed by functionality rather than being built incrementally. The "extra" infrastructure supports features that were removed for this PR but will be reintroduced in subsequent ones. This approach was chosen over extensive refactoring because: 1. The complete feature took 200+ commits to develop with significant rewrites 2. Clean extraction of vertical slices was more feasible than rebuilding incrementally 3. The end state will utilize all these components, making current "redundancy" temporary I apologize for any inconvenience this may cause during review, but the alternative would have required significant refactoring effort just to make intermediate states "prettier," which seemed counterproductive. --- **Future Work:** This lays the groundwork for upcoming PRs that will reintroduce the removed features: - Cell selection and keyboard navigation - Copy functionality with multiple output formats - Inline editing capabilities with undo/redo - Column filtering and search - TSV and other delimiter support - Improved horizontal scrolling behavior - Settings persistence **Testing:** Includes test fixtures demonstrating multiline cell handling, various column counts, and edge cases. --- **Release Notes:** - N/A This is feature flagged --------- Co-authored-by: Anthony Eid <anthony@zed.dev>
973 lines
32 KiB
TOML
973 lines
32 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/acp_thread",
|
|
"crates/acp_tools",
|
|
"crates/action_log",
|
|
"crates/activity_indicator",
|
|
"crates/agent",
|
|
"crates/agent_servers",
|
|
"crates/agent_settings",
|
|
"crates/agent_ui",
|
|
"crates/ai_onboarding",
|
|
"crates/anthropic",
|
|
"crates/askpass",
|
|
"crates/assets",
|
|
"crates/assistant_slash_command",
|
|
"crates/assistant_slash_commands",
|
|
"crates/assistant_text_thread",
|
|
"crates/audio",
|
|
"crates/auto_update",
|
|
"crates/auto_update_helper",
|
|
"crates/auto_update_ui",
|
|
"crates/aws_http_client",
|
|
"crates/bedrock",
|
|
"crates/breadcrumbs",
|
|
"crates/buffer_diff",
|
|
"crates/call",
|
|
"crates/channel",
|
|
"crates/cli",
|
|
"crates/client",
|
|
"crates/clock",
|
|
"crates/cloud_api_client",
|
|
"crates/cloud_api_types",
|
|
"crates/cloud_llm_client",
|
|
"crates/codestral",
|
|
"crates/collab",
|
|
"crates/collab_ui",
|
|
"crates/collections",
|
|
"crates/command_palette",
|
|
"crates/command_palette_hooks",
|
|
"crates/component",
|
|
"crates/component_preview",
|
|
"crates/context_server",
|
|
"crates/copilot",
|
|
"crates/copilot_chat",
|
|
"crates/crashes",
|
|
"crates/credentials_provider",
|
|
"crates/csv_preview",
|
|
"crates/dap",
|
|
"crates/dap_adapters",
|
|
"crates/db",
|
|
"crates/debug_adapter_extension",
|
|
"crates/debugger_tools",
|
|
"crates/debugger_ui",
|
|
"crates/deepseek",
|
|
"crates/denoise",
|
|
"crates/dev_container",
|
|
"crates/diagnostics",
|
|
"crates/docs_preprocessor",
|
|
"crates/edit_prediction",
|
|
"crates/edit_prediction_cli",
|
|
"crates/edit_prediction_context",
|
|
"crates/edit_prediction_types",
|
|
"crates/edit_prediction_ui",
|
|
"crates/editor",
|
|
"crates/encoding_selector",
|
|
"crates/etw_tracing",
|
|
"crates/eval",
|
|
"crates/eval_utils",
|
|
"crates/explorer_command_injector",
|
|
"crates/extension",
|
|
"crates/extension_api",
|
|
"crates/extension_cli",
|
|
"crates/extension_host",
|
|
"crates/extensions_ui",
|
|
"crates/feature_flags",
|
|
"crates/feedback",
|
|
"crates/file_finder",
|
|
"crates/file_icons",
|
|
"crates/fs",
|
|
"crates/fs_benchmarks",
|
|
"crates/fuzzy",
|
|
"crates/git",
|
|
"crates/git_graph",
|
|
"crates/git_hosting_providers",
|
|
"crates/git_ui",
|
|
"crates/go_to_line",
|
|
"crates/google_ai",
|
|
"crates/gpui",
|
|
"crates/gpui_linux",
|
|
"crates/gpui_macos",
|
|
"crates/gpui_macros",
|
|
"crates/gpui_platform",
|
|
"crates/gpui_tokio",
|
|
"crates/gpui_util",
|
|
"crates/gpui_web",
|
|
"crates/gpui_wgpu",
|
|
"crates/gpui_windows",
|
|
"crates/html_to_markdown",
|
|
"crates/http_client",
|
|
"crates/http_client_tls",
|
|
"crates/icons",
|
|
"crates/image_viewer",
|
|
"crates/inspector_ui",
|
|
"crates/install_cli",
|
|
"crates/journal",
|
|
"crates/json_schema_store",
|
|
"crates/keymap_editor",
|
|
"crates/language",
|
|
"crates/language_extension",
|
|
"crates/language_model",
|
|
"crates/language_models",
|
|
"crates/language_onboarding",
|
|
"crates/language_selector",
|
|
"crates/language_tools",
|
|
"crates/languages",
|
|
"crates/line_ending_selector",
|
|
"crates/livekit_api",
|
|
"crates/livekit_client",
|
|
"crates/lmstudio",
|
|
"crates/lsp",
|
|
"crates/markdown",
|
|
"crates/markdown_preview",
|
|
"crates/media",
|
|
"crates/menu",
|
|
"crates/migrator",
|
|
"crates/miniprofiler_ui",
|
|
"crates/mistral",
|
|
"crates/multi_buffer",
|
|
"crates/nc",
|
|
"crates/net",
|
|
"crates/node_runtime",
|
|
"crates/notifications",
|
|
"crates/ollama",
|
|
"crates/onboarding",
|
|
"crates/open_ai",
|
|
"crates/open_path_prompt",
|
|
"crates/open_router",
|
|
"crates/outline",
|
|
"crates/outline_panel",
|
|
"crates/panel",
|
|
"crates/paths",
|
|
"crates/picker",
|
|
"crates/platform_title_bar",
|
|
"crates/prettier",
|
|
"crates/project",
|
|
"crates/project_benchmarks",
|
|
"crates/project_panel",
|
|
"crates/project_symbols",
|
|
"crates/prompt_store",
|
|
"crates/proto",
|
|
"crates/recent_projects",
|
|
"crates/refineable",
|
|
"crates/refineable/derive_refineable",
|
|
"crates/release_channel",
|
|
"crates/remote",
|
|
"crates/remote_connection",
|
|
"crates/remote_server",
|
|
"crates/repl",
|
|
"crates/reqwest_client",
|
|
"crates/rich_text",
|
|
"crates/rope",
|
|
"crates/rpc",
|
|
"crates/rules_library",
|
|
"crates/scheduler",
|
|
"crates/schema_generator",
|
|
"crates/search",
|
|
"crates/session",
|
|
"crates/settings",
|
|
"crates/settings_content",
|
|
"crates/settings_json",
|
|
"crates/settings_macros",
|
|
"crates/settings_profile_selector",
|
|
"crates/settings_ui",
|
|
"crates/shell_command_parser",
|
|
"crates/sidebar",
|
|
"crates/snippet",
|
|
"crates/snippet_provider",
|
|
"crates/snippets_ui",
|
|
"crates/sqlez",
|
|
"crates/sqlez_macros",
|
|
"crates/story",
|
|
"crates/storybook",
|
|
"crates/streaming_diff",
|
|
"crates/sum_tree",
|
|
"crates/svg_preview",
|
|
"crates/system_specs",
|
|
"crates/tab_switcher",
|
|
"crates/task",
|
|
"crates/tasks_ui",
|
|
"crates/telemetry",
|
|
"crates/telemetry_events",
|
|
"crates/terminal",
|
|
"crates/terminal_view",
|
|
"crates/text",
|
|
"crates/theme",
|
|
"crates/theme_extension",
|
|
"crates/theme_importer",
|
|
"crates/theme_selector",
|
|
"crates/time_format",
|
|
"crates/title_bar",
|
|
"crates/toolchain_selector",
|
|
"crates/ui",
|
|
"crates/ui_input",
|
|
"crates/ui_macros",
|
|
"crates/ui_prompt",
|
|
"crates/util",
|
|
"crates/util_macros",
|
|
"crates/vercel",
|
|
"crates/vim",
|
|
"crates/vim_mode_setting",
|
|
"crates/watch",
|
|
"crates/web_search",
|
|
"crates/web_search_providers",
|
|
"crates/which_key",
|
|
"crates/workspace",
|
|
"crates/worktree",
|
|
"crates/worktree_benchmarks",
|
|
"crates/x_ai",
|
|
"crates/zed",
|
|
"crates/zed_actions",
|
|
"crates/zed_env_vars",
|
|
"crates/zeta_prompt",
|
|
"crates/zlog",
|
|
"crates/zlog_settings",
|
|
"crates/ztracing",
|
|
"crates/ztracing_macro",
|
|
|
|
#
|
|
# Extensions
|
|
#
|
|
|
|
"extensions/glsl",
|
|
"extensions/html",
|
|
"extensions/proto",
|
|
"extensions/slash-commands-example",
|
|
"extensions/test-extension",
|
|
|
|
#
|
|
# Tooling
|
|
#
|
|
|
|
"tooling/perf",
|
|
"tooling/xtask",
|
|
]
|
|
default-members = ["crates/zed"]
|
|
|
|
[workspace.package]
|
|
publish = false
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
|
|
#
|
|
# Workspace member crates
|
|
#
|
|
|
|
acp_tools = { path = "crates/acp_tools" }
|
|
acp_thread = { path = "crates/acp_thread" }
|
|
action_log = { path = "crates/action_log" }
|
|
agent = { path = "crates/agent" }
|
|
activity_indicator = { path = "crates/activity_indicator" }
|
|
agent_ui = { path = "crates/agent_ui" }
|
|
agent_settings = { path = "crates/agent_settings" }
|
|
agent_servers = { path = "crates/agent_servers" }
|
|
ai_onboarding = { path = "crates/ai_onboarding" }
|
|
anthropic = { path = "crates/anthropic" }
|
|
askpass = { path = "crates/askpass" }
|
|
assets = { path = "crates/assets" }
|
|
assistant_text_thread = { path = "crates/assistant_text_thread" }
|
|
assistant_slash_command = { path = "crates/assistant_slash_command" }
|
|
assistant_slash_commands = { path = "crates/assistant_slash_commands" }
|
|
audio = { path = "crates/audio" }
|
|
auto_update = { path = "crates/auto_update" }
|
|
auto_update_ui = { path = "crates/auto_update_ui" }
|
|
aws_http_client = { path = "crates/aws_http_client" }
|
|
bedrock = { path = "crates/bedrock" }
|
|
breadcrumbs = { path = "crates/breadcrumbs" }
|
|
buffer_diff = { path = "crates/buffer_diff" }
|
|
call = { path = "crates/call" }
|
|
channel = { path = "crates/channel" }
|
|
cli = { path = "crates/cli" }
|
|
client = { path = "crates/client" }
|
|
clock = { path = "crates/clock" }
|
|
cloud_api_client = { path = "crates/cloud_api_client" }
|
|
cloud_api_types = { path = "crates/cloud_api_types" }
|
|
cloud_llm_client = { path = "crates/cloud_llm_client" }
|
|
collab = { path = "crates/collab" }
|
|
collab_ui = { path = "crates/collab_ui" }
|
|
collections = { path = "crates/collections", version = "0.1.0" }
|
|
command_palette = { path = "crates/command_palette" }
|
|
command_palette_hooks = { path = "crates/command_palette_hooks" }
|
|
component = { path = "crates/component" }
|
|
component_preview = { path = "crates/component_preview" }
|
|
context_server = { path = "crates/context_server" }
|
|
copilot = { path = "crates/copilot" }
|
|
copilot_chat = { path = "crates/copilot_chat" }
|
|
copilot_ui = { path = "crates/copilot_ui" }
|
|
crashes = { path = "crates/crashes" }
|
|
credentials_provider = { path = "crates/credentials_provider" }
|
|
crossbeam = "0.8.4"
|
|
csv_preview = { path = "crates/csv_preview"}
|
|
dap = { path = "crates/dap" }
|
|
dap_adapters = { path = "crates/dap_adapters" }
|
|
db = { path = "crates/db" }
|
|
debug_adapter_extension = { path = "crates/debug_adapter_extension" }
|
|
debugger_tools = { path = "crates/debugger_tools" }
|
|
debugger_ui = { path = "crates/debugger_ui" }
|
|
deepseek = { path = "crates/deepseek" }
|
|
derive_refineable = { path = "crates/refineable/derive_refineable" }
|
|
dev_container = { path = "crates/dev_container" }
|
|
diagnostics = { path = "crates/diagnostics" }
|
|
editor = { path = "crates/editor" }
|
|
encoding_selector = { path = "crates/encoding_selector" }
|
|
etw_tracing = { path = "crates/etw_tracing" }
|
|
eval_utils = { path = "crates/eval_utils" }
|
|
extension = { path = "crates/extension" }
|
|
extension_host = { path = "crates/extension_host" }
|
|
extensions_ui = { path = "crates/extensions_ui" }
|
|
feature_flags = { path = "crates/feature_flags" }
|
|
feedback = { path = "crates/feedback" }
|
|
file_finder = { path = "crates/file_finder" }
|
|
file_icons = { path = "crates/file_icons" }
|
|
fs = { path = "crates/fs" }
|
|
fuzzy = { path = "crates/fuzzy" }
|
|
git = { path = "crates/git" }
|
|
git_graph = { path = "crates/git_graph" }
|
|
git_hosting_providers = { path = "crates/git_hosting_providers" }
|
|
git_ui = { path = "crates/git_ui" }
|
|
go_to_line = { path = "crates/go_to_line" }
|
|
google_ai = { path = "crates/google_ai" }
|
|
gpui = { path = "crates/gpui", default-features = false }
|
|
gpui_linux = { path = "crates/gpui_linux", default-features = false }
|
|
gpui_macos = { path = "crates/gpui_macos", default-features = false }
|
|
gpui_macros = { path = "crates/gpui_macros" }
|
|
gpui_platform = { path = "crates/gpui_platform", default-features = false }
|
|
gpui_web = { path = "crates/gpui_web" }
|
|
gpui_wgpu = { path = "crates/gpui_wgpu" }
|
|
gpui_windows = { path = "crates/gpui_windows", default-features = false }
|
|
gpui_tokio = { path = "crates/gpui_tokio" }
|
|
gpui_util = { path = "crates/gpui_util" }
|
|
html_to_markdown = { path = "crates/html_to_markdown" }
|
|
http_client = { path = "crates/http_client" }
|
|
http_client_tls = { path = "crates/http_client_tls" }
|
|
icons = { path = "crates/icons" }
|
|
image_viewer = { path = "crates/image_viewer" }
|
|
edit_prediction_types = { path = "crates/edit_prediction_types" }
|
|
edit_prediction_ui = { path = "crates/edit_prediction_ui" }
|
|
edit_prediction_context = { path = "crates/edit_prediction_context" }
|
|
inspector_ui = { path = "crates/inspector_ui" }
|
|
install_cli = { path = "crates/install_cli" }
|
|
journal = { path = "crates/journal" }
|
|
json_schema_store = { path = "crates/json_schema_store" }
|
|
keymap_editor = { path = "crates/keymap_editor" }
|
|
language = { path = "crates/language" }
|
|
language_extension = { path = "crates/language_extension" }
|
|
language_model = { path = "crates/language_model" }
|
|
language_models = { path = "crates/language_models" }
|
|
language_onboarding = { path = "crates/language_onboarding" }
|
|
language_selector = { path = "crates/language_selector" }
|
|
language_tools = { path = "crates/language_tools" }
|
|
languages = { path = "crates/languages" }
|
|
line_ending_selector = { path = "crates/line_ending_selector" }
|
|
livekit_api = { path = "crates/livekit_api" }
|
|
livekit_client = { path = "crates/livekit_client" }
|
|
lmstudio = { path = "crates/lmstudio" }
|
|
lsp = { path = "crates/lsp" }
|
|
markdown = { path = "crates/markdown" }
|
|
markdown_preview = { path = "crates/markdown_preview" }
|
|
svg_preview = { path = "crates/svg_preview" }
|
|
media = { path = "crates/media" }
|
|
menu = { path = "crates/menu" }
|
|
mermaid-rs-renderer = { git = "https://github.com/zed-industries/mermaid-rs-renderer", rev = "374db9ead5426697c6c2111151d9f246899bc638", default-features = false }
|
|
migrator = { path = "crates/migrator" }
|
|
mistral = { path = "crates/mistral" }
|
|
multi_buffer = { path = "crates/multi_buffer" }
|
|
miniprofiler_ui = { path = "crates/miniprofiler_ui" }
|
|
nc = { path = "crates/nc" }
|
|
net = { path = "crates/net" }
|
|
node_runtime = { path = "crates/node_runtime" }
|
|
notifications = { path = "crates/notifications" }
|
|
ollama = { path = "crates/ollama" }
|
|
onboarding = { path = "crates/onboarding" }
|
|
open_ai = { path = "crates/open_ai" }
|
|
open_path_prompt = { path = "crates/open_path_prompt" }
|
|
open_router = { path = "crates/open_router", features = ["schemars"] }
|
|
outline = { path = "crates/outline" }
|
|
outline_panel = { path = "crates/outline_panel" }
|
|
panel = { path = "crates/panel" }
|
|
paths = { path = "crates/paths" }
|
|
perf = { path = "tooling/perf" }
|
|
picker = { path = "crates/picker" }
|
|
prettier = { path = "crates/prettier" }
|
|
settings_profile_selector = { path = "crates/settings_profile_selector" }
|
|
project = { path = "crates/project" }
|
|
project_panel = { path = "crates/project_panel" }
|
|
project_symbols = { path = "crates/project_symbols" }
|
|
prompt_store = { path = "crates/prompt_store" }
|
|
proto = { path = "crates/proto" }
|
|
recent_projects = { path = "crates/recent_projects" }
|
|
refineable = { path = "crates/refineable" }
|
|
release_channel = { path = "crates/release_channel" }
|
|
remote = { path = "crates/remote" }
|
|
remote_connection = { path = "crates/remote_connection" }
|
|
remote_server = { path = "crates/remote_server" }
|
|
repl = { path = "crates/repl" }
|
|
reqwest_client = { path = "crates/reqwest_client" }
|
|
rodio = { git = "https://github.com/RustAudio/rodio", rev = "e50e726ddd0292f6ef9de0dda6b90af4ed1fb66a", features = ["wav", "playback", "wav_output", "recording"] }
|
|
rope = { path = "crates/rope" }
|
|
rpc = { path = "crates/rpc" }
|
|
rules_library = { path = "crates/rules_library" }
|
|
scheduler = { path = "crates/scheduler" }
|
|
search = { path = "crates/search" }
|
|
session = { path = "crates/session" }
|
|
sidebar = { path = "crates/sidebar" }
|
|
settings = { path = "crates/settings" }
|
|
settings_content = { path = "crates/settings_content" }
|
|
settings_json = { path = "crates/settings_json" }
|
|
settings_macros = { path = "crates/settings_macros" }
|
|
settings_ui = { path = "crates/settings_ui" }
|
|
shell_command_parser = { path = "crates/shell_command_parser" }
|
|
snippet = { path = "crates/snippet" }
|
|
snippet_provider = { path = "crates/snippet_provider" }
|
|
snippets_ui = { path = "crates/snippets_ui" }
|
|
sqlez = { path = "crates/sqlez" }
|
|
sqlez_macros = { path = "crates/sqlez_macros" }
|
|
story = { path = "crates/story" }
|
|
streaming_diff = { path = "crates/streaming_diff" }
|
|
sum_tree = { path = "crates/sum_tree" }
|
|
codestral = { path = "crates/codestral" }
|
|
system_specs = { path = "crates/system_specs" }
|
|
tab_switcher = { path = "crates/tab_switcher" }
|
|
task = { path = "crates/task" }
|
|
tasks_ui = { path = "crates/tasks_ui" }
|
|
telemetry = { path = "crates/telemetry" }
|
|
telemetry_events = { path = "crates/telemetry_events" }
|
|
terminal = { path = "crates/terminal" }
|
|
terminal_view = { path = "crates/terminal_view" }
|
|
text = { path = "crates/text" }
|
|
theme = { path = "crates/theme" }
|
|
theme_extension = { path = "crates/theme_extension" }
|
|
theme_selector = { path = "crates/theme_selector" }
|
|
time_format = { path = "crates/time_format" }
|
|
platform_title_bar = { path = "crates/platform_title_bar" }
|
|
title_bar = { path = "crates/title_bar" }
|
|
toolchain_selector = { path = "crates/toolchain_selector" }
|
|
ui = { path = "crates/ui" }
|
|
ui_input = { path = "crates/ui_input" }
|
|
ui_macros = { path = "crates/ui_macros" }
|
|
ui_prompt = { path = "crates/ui_prompt" }
|
|
util = { path = "crates/util" }
|
|
util_macros = { path = "crates/util_macros" }
|
|
vercel = { path = "crates/vercel" }
|
|
vim = { path = "crates/vim" }
|
|
vim_mode_setting = { path = "crates/vim_mode_setting" }
|
|
which_key = { path = "crates/which_key" }
|
|
|
|
watch = { path = "crates/watch" }
|
|
web_search = { path = "crates/web_search" }
|
|
web_search_providers = { path = "crates/web_search_providers" }
|
|
workspace = { path = "crates/workspace" }
|
|
worktree = { path = "crates/worktree" }
|
|
x_ai = { path = "crates/x_ai" }
|
|
zed = { path = "crates/zed" }
|
|
zed_actions = { path = "crates/zed_actions" }
|
|
zed_env_vars = { path = "crates/zed_env_vars" }
|
|
edit_prediction = { path = "crates/edit_prediction" }
|
|
zeta_prompt = { path = "crates/zeta_prompt" }
|
|
zlog = { path = "crates/zlog" }
|
|
zlog_settings = { path = "crates/zlog_settings" }
|
|
ztracing = { path = "crates/ztracing" }
|
|
ztracing_macro = { path = "crates/ztracing_macro" }
|
|
|
|
#
|
|
# External crates
|
|
#
|
|
|
|
agent-client-protocol = { version = "=0.9.4", features = ["unstable"] }
|
|
aho-corasick = "1.1"
|
|
alacritty_terminal = { git = "https://github.com/zed-industries/alacritty", rev = "9d9640d4" }
|
|
any_vec = "0.14"
|
|
anyhow = "1.0.86"
|
|
arrayvec = { version = "0.7.4", features = ["serde"] }
|
|
ashpd = { version = "0.13", default-features = false, features = [
|
|
"async-io",
|
|
"notification",
|
|
"open_uri",
|
|
"file_chooser",
|
|
"settings",
|
|
"trash"
|
|
] }
|
|
async-channel = "2.5.0"
|
|
async-compat = "0.2.1"
|
|
async-compression = { version = "0.4", features = ["gzip", "futures-io"] }
|
|
async-dispatcher = "0.1"
|
|
async-fs = "2.1"
|
|
async-lock = "2.1"
|
|
async-pipe = { git = "https://github.com/zed-industries/async-pipe-rs", rev = "82d00a04211cf4e1236029aa03e6b6ce2a74c553" }
|
|
async-recursion = "1.0.0"
|
|
async-tar = "0.5.1"
|
|
async-task = "4.7"
|
|
async-trait = "0.1"
|
|
async-tungstenite = "0.31.0"
|
|
async_zip = { version = "0.0.18", features = ["deflate", "deflate64"] }
|
|
aws-config = { version = "1.8.10", features = ["behavior-version-latest"] }
|
|
aws-credential-types = { version = "1.2.8", features = [
|
|
"hardcoded-credentials",
|
|
] }
|
|
aws-sdk-bedrockruntime = { version = "1.112.0", features = [
|
|
"behavior-version-latest",
|
|
] }
|
|
aws-smithy-runtime-api = { version = "1.9.2", features = ["http-1x", "client"] }
|
|
aws-smithy-types = { version = "1.3.4", features = ["http-body-1-x"] }
|
|
backtrace = "0.3"
|
|
base64 = "0.22"
|
|
bincode = "1.2.1"
|
|
bitflags = "2.6.0"
|
|
brotli = "8.0.2"
|
|
bytes = "1.0"
|
|
cargo_metadata = "0.19"
|
|
cargo_toml = "0.21"
|
|
brush-parser = "0.3"
|
|
cfg-if = "1.0.3"
|
|
chardetng = "0.1"
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
ciborium = "0.2"
|
|
circular-buffer = "1.0"
|
|
clap = { version = "4.4", features = ["derive", "wrap_help"] }
|
|
cocoa = "=0.26.0"
|
|
cocoa-foundation = "=0.2.0"
|
|
convert_case = "0.8.0"
|
|
core-foundation = "=0.10.0"
|
|
core-foundation-sys = "0.8.6"
|
|
core-video = { version = "0.5.2", features = ["metal"] }
|
|
cpal = "0.17"
|
|
crash-handler = "0.6"
|
|
criterion = { version = "0.5", features = ["html_reports"] }
|
|
ctor = "0.4.0"
|
|
dap-types = { git = "https://github.com/zed-industries/dap-types", rev = "1b461b310481d01e02b2603c16d7144b926339f8" }
|
|
dashmap = "6.0"
|
|
derive_more = "0.99.17"
|
|
dirs = "4.0"
|
|
documented = "0.9.1"
|
|
dotenvy = "0.15.0"
|
|
ec4rs = "1.1"
|
|
emojis = "0.6.1"
|
|
env_logger = "0.11"
|
|
encoding_rs = "0.8"
|
|
exec = "0.3.1"
|
|
fancy-regex = "0.16.0"
|
|
fork = "0.4.0"
|
|
futures = "0.3"
|
|
futures-concurrency = "7.7.1"
|
|
futures-lite = "1.13"
|
|
gh-workflow = { git = "https://github.com/zed-industries/gh-workflow", rev = "c9eac0ed361583e1072860d96776fa52775b82ac" }
|
|
git2 = { version = "0.20.1", default-features = false, features = ["vendored-libgit2"] }
|
|
globset = "0.4"
|
|
handlebars = "4.3"
|
|
heck = "0.5"
|
|
heed = { version = "0.21.0", features = ["read-txn-no-tls"] }
|
|
hex = "0.4.3"
|
|
human_bytes = "0.4.1"
|
|
html5ever = "0.27.0"
|
|
http = "1.1"
|
|
http-body = "1.0"
|
|
hyper = "0.14"
|
|
ignore = "0.4.22"
|
|
image = "0.25.1"
|
|
imara-diff = "0.1.8"
|
|
indexmap = { version = "2.7.0", features = ["serde"] }
|
|
indoc = "2"
|
|
inventory = "0.3.19"
|
|
itertools = "0.14.0"
|
|
json_dotpath = "1.1"
|
|
jsonschema = "0.37.0"
|
|
jsonwebtoken = "10.0"
|
|
jupyter-protocol = "1.2.0"
|
|
jupyter-websocket-client = "1.0.0"
|
|
libc = "0.2"
|
|
libsqlite3-sys = { version = "0.30.1", features = ["bundled"] }
|
|
linkify = "0.10.0"
|
|
libwebrtc = "0.3.26"
|
|
livekit = { version = "0.7.32", features = ["tokio", "rustls-tls-native-roots"] }
|
|
log = { version = "0.4.16", features = ["kv_unstable_serde", "serde"] }
|
|
lsp-types = { git = "https://github.com/zed-industries/lsp-types", rev = "a4f410987660bf560d1e617cb78117c6b6b9f599" }
|
|
mach2 = "0.5"
|
|
markup5ever_rcdom = "0.3.0"
|
|
metal = "0.33"
|
|
minidumper = "0.8"
|
|
moka = { version = "0.12.10", features = ["sync"] }
|
|
naga = { version = "28.0", features = ["wgsl-in"] }
|
|
nanoid = "0.4"
|
|
nbformat = "1.1.0"
|
|
nix = "0.29"
|
|
num-format = "0.4.4"
|
|
objc = "0.2"
|
|
objc2-foundation = { version = "=0.3.1", default-features = false, features = [
|
|
"NSArray",
|
|
"NSAttributedString",
|
|
"NSBundle",
|
|
"NSCoder",
|
|
"NSData",
|
|
"NSDate",
|
|
"NSDictionary",
|
|
"NSEnumerator",
|
|
"NSError",
|
|
"NSGeometry",
|
|
"NSNotification",
|
|
"NSNull",
|
|
"NSObjCRuntime",
|
|
"NSObject",
|
|
"NSProcessInfo",
|
|
"NSRange",
|
|
"NSRunLoop",
|
|
"NSString",
|
|
"NSURL",
|
|
"NSUndoManager",
|
|
"NSValue",
|
|
"objc2-core-foundation",
|
|
"std",
|
|
] }
|
|
open = "5.0.0"
|
|
ordered-float = "2.1.1"
|
|
palette = { version = "0.7.5", default-features = false, features = ["std"] }
|
|
parking_lot = "0.12.1"
|
|
partial-json-fixer = "0.5.3"
|
|
parse_int = "0.9"
|
|
pciid-parser = "0.8.0"
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2.3.2"
|
|
pet = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-conda = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-core = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-fs = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-poetry = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-reporter = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
pet-virtualenv = { git = "https://github.com/microsoft/python-environment-tools.git", rev = "d5b5bb0c4558a51d8cc76b514bc870fd1c042f16" }
|
|
portable-pty = "0.9.0"
|
|
postage = { version = "0.5", features = ["futures-traits"] }
|
|
pretty_assertions = { version = "1.3.0", features = ["unstable"] }
|
|
proc-macro2 = "1.0.93"
|
|
profiling = "1"
|
|
prost = "0.9"
|
|
prost-build = "0.9"
|
|
prost-types = "0.9"
|
|
pollster = "0.4.0"
|
|
pulldown-cmark = { version = "0.13.0", default-features = false }
|
|
quote = "1.0.9"
|
|
rand = "0.9"
|
|
rayon = "1.8"
|
|
regex = "1.5"
|
|
# WARNING: If you change this, you must also publish a new version of zed-reqwest to crates.io
|
|
reqwest = { git = "https://github.com/zed-industries/reqwest.git", rev = "c15662463bda39148ba154100dd44d3fba5873a4", default-features = false, features = [
|
|
"charset",
|
|
"http2",
|
|
"macos-system-configuration",
|
|
"multipart",
|
|
"rustls-tls-native-roots",
|
|
"socks",
|
|
"stream",
|
|
], package = "zed-reqwest", version = "0.12.15-zed" }
|
|
rsa = "0.9.6"
|
|
runtimelib = { version = "1.2.0", default-features = false, features = [
|
|
"async-dispatcher-runtime", "aws-lc-rs"
|
|
] }
|
|
rust-embed = { version = "8.4", features = ["include-exclude"] }
|
|
rustc-hash = "2.1.0"
|
|
rustls = { version = "0.23.26" }
|
|
rustls-platform-verifier = "0.5.0"
|
|
# WARNING: If you change this, you must also publish a new version of zed-scap to crates.io
|
|
scap = { git = "https://github.com/zed-industries/scap", rev = "4afea48c3b002197176fb19cd0f9b180dd36eaac", default-features = false, package = "zed-scap", version = "0.0.8-zed" }
|
|
schemars = { version = "1.0", features = ["indexmap2"] }
|
|
semver = { version = "1.0", features = ["serde"] }
|
|
serde = { version = "1.0.221", features = ["derive", "rc"] }
|
|
serde_json = { version = "1.0.144", features = ["preserve_order", "raw_value"] }
|
|
serde_json_lenient = { version = "0.2", features = [
|
|
"preserve_order",
|
|
"raw_value",
|
|
] }
|
|
serde_path_to_error = "0.1.17"
|
|
serde_repr = "0.1"
|
|
serde_urlencoded = "0.7"
|
|
sha2 = "0.10"
|
|
shellexpand = "2.1.0"
|
|
shlex = "1.3.0"
|
|
simplelog = "0.12.2"
|
|
slotmap = "1.0.6"
|
|
smallvec = { version = "1.6", features = ["union", "const_new"] }
|
|
smol = "2.0"
|
|
sqlformat = "0.2"
|
|
stacksafe = "0.1"
|
|
streaming-iterator = "0.1"
|
|
strsim = "0.11"
|
|
strum = { version = "0.27.2", features = ["derive"] }
|
|
syn = { version = "2.0.101", features = ["full", "extra-traits", "visit-mut"] }
|
|
sys-locale = "0.3.1"
|
|
sysinfo = "0.37.0"
|
|
take-until = "0.2.0"
|
|
tempfile = "3.20.0"
|
|
thiserror = "2.0.12"
|
|
tiktoken-rs = { git = "https://github.com/zed-industries/tiktoken-rs", rev = "2570c4387a8505fb8f1d3f3557454b474f1e8271" }
|
|
time = { version = "0.3", features = [
|
|
"macros",
|
|
"parsing",
|
|
"serde",
|
|
"serde-well-known",
|
|
"formatting",
|
|
"local-offset",
|
|
] }
|
|
tiny_http = "0.8"
|
|
tokio = { version = "1" }
|
|
tokio-tungstenite = { version = "0.26", features = ["__rustls-tls"] }
|
|
tokio-socks = { version = "0.5.2", default-features = false, features = [
|
|
"futures-io",
|
|
"tokio",
|
|
] }
|
|
toml = "0.8"
|
|
toml_edit = { version = "0.22", default-features = false, features = [
|
|
"display",
|
|
"parse",
|
|
"serde",
|
|
] }
|
|
tower-http = "0.4.4"
|
|
tree-sitter = { version = "0.26", features = ["wasm"] }
|
|
tree-sitter-bash = "0.25.1"
|
|
tree-sitter-c = "0.24.1"
|
|
tree-sitter-cpp = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev = "5cb9b693cfd7bfacab1d9ff4acac1a4150700609" }
|
|
tree-sitter-css = "0.23"
|
|
tree-sitter-diff = "0.1.0"
|
|
tree-sitter-elixir = "0.3"
|
|
tree-sitter-embedded-template = "0.23.0"
|
|
tree-sitter-gitcommit = { git = "https://github.com/zed-industries/tree-sitter-git-commit", rev = "88309716a69dd13ab83443721ba6e0b491d37ee9" }
|
|
tree-sitter-go = "0.25"
|
|
tree-sitter-go-mod = { git = "https://github.com/camdencheek/tree-sitter-go-mod", rev = "2e886870578eeba1927a2dc4bd2e2b3f598c5f9a", package = "tree-sitter-gomod" }
|
|
tree-sitter-gowork = { git = "https://github.com/zed-industries/tree-sitter-go-work", rev = "acb0617bf7f4fda02c6217676cc64acb89536dc7" }
|
|
tree-sitter-heex = { git = "https://github.com/zed-industries/tree-sitter-heex", rev = "1dd45142fbb05562e35b2040c6129c9bca346592" }
|
|
tree-sitter-html = "0.23"
|
|
tree-sitter-jsdoc = "0.23"
|
|
tree-sitter-json = "0.24"
|
|
tree-sitter-md = { git = "https://github.com/tree-sitter-grammars/tree-sitter-markdown", rev = "9a23c1a96c0513d8fc6520972beedd419a973539" }
|
|
tree-sitter-python = "0.25"
|
|
tree-sitter-regex = "0.24"
|
|
tree-sitter-ruby = "0.23"
|
|
tree-sitter-rust = "0.24"
|
|
tree-sitter-typescript = { git = "https://github.com/zed-industries/tree-sitter-typescript", rev = "e2c53597d6a5d9cf7bbe8dccde576fe1e46c5899" } # https://github.com/tree-sitter/tree-sitter-typescript/pull/347
|
|
tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "baff0b51c64ef6a1fb1f8390f3ad6015b83ec13a" }
|
|
tracing = "0.1.40"
|
|
unicase = "2.6"
|
|
unicode-script = "0.5.7"
|
|
unicode-segmentation = "1.10"
|
|
unicode-width = "0.2"
|
|
unindent = "0.2.0"
|
|
url = "2.2"
|
|
urlencoding = "2.1.2"
|
|
uuid = { version = "1.1.2", features = ["v4", "v5", "v7", "serde"] }
|
|
walkdir = "2.5"
|
|
wasm-encoder = "0.221"
|
|
wasmparser = "0.221"
|
|
wasmtime = { version = "33", default-features = false, features = [
|
|
"async",
|
|
"demangle",
|
|
"runtime",
|
|
"cranelift",
|
|
"component-model",
|
|
"incremental-cache",
|
|
"parallel-compilation",
|
|
] }
|
|
wasmtime-wasi = "33"
|
|
wax = "0.7"
|
|
which = "6.0.0"
|
|
wasm-bindgen = "0.2.113"
|
|
web-time = "1.1.0"
|
|
wgpu = "28.0"
|
|
windows-core = "0.61"
|
|
yawc = "0.2.5"
|
|
zeroize = "1.8"
|
|
zstd = "0.11"
|
|
|
|
|
|
[workspace.dependencies.windows]
|
|
version = "0.61"
|
|
features = [
|
|
"Foundation_Numerics",
|
|
"Globalization_DateTimeFormatting",
|
|
"Storage_Search",
|
|
"Storage_Streams",
|
|
"System_Threading",
|
|
"UI_ViewManagement",
|
|
"Wdk_System_SystemServices",
|
|
"Win32_Foundation",
|
|
"Win32_Globalization",
|
|
"Win32_Graphics_Direct3D",
|
|
"Win32_Graphics_Direct3D11",
|
|
"Win32_Graphics_Direct3D_Fxc",
|
|
"Win32_Graphics_DirectComposition",
|
|
"Win32_Graphics_DirectWrite",
|
|
"Win32_Graphics_Dwm",
|
|
"Win32_Graphics_Dxgi",
|
|
"Win32_Graphics_Dxgi_Common",
|
|
"Win32_Graphics_Gdi",
|
|
"Win32_Graphics_Imaging",
|
|
"Win32_Graphics_Hlsl",
|
|
"Win32_Networking_WinSock",
|
|
"Win32_Security",
|
|
"Win32_Security_Credentials",
|
|
"Win32_Security_Cryptography",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_Com",
|
|
"Win32_System_Com_StructuredStorage",
|
|
"Win32_System_Console",
|
|
"Win32_System_DataExchange",
|
|
"Win32_System_IO",
|
|
"Win32_System_LibraryLoader",
|
|
"Win32_System_Memory",
|
|
"Win32_System_Ole",
|
|
"Win32_System_Performance",
|
|
"Win32_System_Pipes",
|
|
"Win32_System_SystemInformation",
|
|
"Win32_System_SystemServices",
|
|
"Win32_System_Threading",
|
|
"Win32_System_Variant",
|
|
"Win32_System_WinRT",
|
|
"Win32_UI_Controls",
|
|
"Win32_UI_HiDpi",
|
|
"Win32_UI_Input_Ime",
|
|
"Win32_UI_Input_KeyboardAndMouse",
|
|
"Win32_UI_Shell",
|
|
"Win32_UI_Shell_Common",
|
|
"Win32_UI_Shell_PropertiesSystem",
|
|
"Win32_UI_WindowsAndMessaging",
|
|
"Win32_Media",
|
|
]
|
|
|
|
[patch.crates-io]
|
|
async-task = { git = "https://github.com/smol-rs/async-task.git", rev = "b4486cd71e4e94fbda54ce6302444de14f4d190e" }
|
|
notify = { git = "https://github.com/zed-industries/notify.git", rev = "ce58c24cad542c28e04ced02e20325a4ec28a31d" }
|
|
notify-types = { git = "https://github.com/zed-industries/notify.git", rev = "ce58c24cad542c28e04ced02e20325a4ec28a31d" }
|
|
windows-capture = { git = "https://github.com/zed-industries/windows-capture.git", rev = "f0d6c1b6691db75461b732f6d5ff56eed002eeb9" }
|
|
calloop = { git = "https://github.com/zed-industries/calloop" }
|
|
livekit = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "37835f840d0070d45ac8b31cce6a6ae7aca3f459" }
|
|
libwebrtc = { git = "https://github.com/zed-industries/livekit-rust-sdks", rev = "37835f840d0070d45ac8b31cce6a6ae7aca3f459" }
|
|
|
|
[profile.dev]
|
|
split-debuginfo = "unpacked"
|
|
incremental = true
|
|
codegen-units = 16
|
|
|
|
# mirror configuration for crates compiled for the build platform
|
|
# (without this cargo will compile ~400 crates twice)
|
|
[profile.dev.build-override]
|
|
codegen-units = 16
|
|
split-debuginfo = "unpacked"
|
|
debug = true
|
|
|
|
[profile.dev.package]
|
|
# proc-macros start
|
|
gpui_macros = { opt-level = 3 }
|
|
derive_refineable = { opt-level = 3 }
|
|
settings_macros = { opt-level = 3 }
|
|
sqlez_macros = { opt-level = 3, codegen-units = 1 }
|
|
ui_macros = { opt-level = 3 }
|
|
util_macros = { opt-level = 3 }
|
|
quote = { opt-level = 3 }
|
|
syn = { opt-level = 3 }
|
|
proc-macro2 = { opt-level = 3 }
|
|
# proc-macros end
|
|
|
|
taffy = { opt-level = 3 }
|
|
resvg = { opt-level = 3 }
|
|
wasmtime = { opt-level = 3 }
|
|
# Build single-source-file crates with cg=1 as it helps make `cargo build` of a whole workspace a bit faster
|
|
activity_indicator = { codegen-units = 1 }
|
|
assets = { codegen-units = 1 }
|
|
breadcrumbs = { codegen-units = 1 }
|
|
collections = { codegen-units = 1 }
|
|
command_palette = { codegen-units = 1 }
|
|
command_palette_hooks = { codegen-units = 1 }
|
|
feature_flags = { codegen-units = 1 }
|
|
file_icons = { codegen-units = 1 }
|
|
image_viewer = { codegen-units = 1 }
|
|
edit_prediction_ui = { codegen-units = 1 }
|
|
install_cli = { codegen-units = 1 }
|
|
journal = { codegen-units = 1 }
|
|
json_schema_store = { codegen-units = 1 }
|
|
lmstudio = { codegen-units = 1 }
|
|
menu = { codegen-units = 1 }
|
|
notifications = { codegen-units = 1 }
|
|
ollama = { codegen-units = 1 }
|
|
outline = { codegen-units = 1 }
|
|
paths = { codegen-units = 1 }
|
|
prettier = { codegen-units = 1 }
|
|
project_symbols = { codegen-units = 1 }
|
|
refineable = { codegen-units = 1 }
|
|
release_channel = { codegen-units = 1 }
|
|
reqwest_client = { codegen-units = 1 }
|
|
session = { codegen-units = 1 }
|
|
sidebar = { codegen-units = 1 }
|
|
snippet = { codegen-units = 1 }
|
|
snippets_ui = { codegen-units = 1 }
|
|
story = { codegen-units = 1 }
|
|
telemetry_events = { codegen-units = 1 }
|
|
theme_selector = { codegen-units = 1 }
|
|
time_format = { codegen-units = 1 }
|
|
ui_input = { codegen-units = 1 }
|
|
zed_actions = { codegen-units = 1 }
|
|
|
|
[profile.release]
|
|
debug = "limited"
|
|
lto = "thin"
|
|
codegen-units = 1
|
|
|
|
[profile.release.package]
|
|
zed = { codegen-units = 16 }
|
|
|
|
[profile.release-fast]
|
|
inherits = "release"
|
|
debug = "full"
|
|
lto = false
|
|
codegen-units = 16
|
|
|
|
[workspace.lints.rust]
|
|
unexpected_cfgs = { level = "allow" }
|
|
|
|
[workspace.lints.clippy]
|
|
dbg_macro = "deny"
|
|
todo = "deny"
|
|
|
|
declare_interior_mutable_const = "deny"
|
|
|
|
redundant_clone = "deny"
|
|
disallowed_methods = "deny"
|
|
|
|
# We currently do not restrict any style rules
|
|
# as it slows down shipping code to Zed.
|
|
#
|
|
# Running ./script/clippy can take several minutes, and so it's
|
|
# common to skip that step and let CI do it. Any unexpected failures
|
|
# (which also take minutes to discover) thus require switching back
|
|
# to an old branch, manual fixing, and re-pushing.
|
|
#
|
|
# In the future we could improve this by either making sure
|
|
# Zed can surface clippy errors in diagnostics (in addition to the
|
|
# rust-analyzer errors), or by having CI fix style nits automatically.
|
|
style = { level = "allow", priority = -1 }
|
|
|
|
# Individual rules that have violations in the codebase:
|
|
type_complexity = "allow"
|
|
let_underscore_future = "allow"
|
|
|
|
# Motivation: We use `vec![a..b]` a lot when dealing with ranges in text, so
|
|
# warning on this rule produces a lot of noise.
|
|
single_range_in_vec_init = "allow"
|
|
|
|
# in Rust it can be very tedious to reduce argument count without
|
|
# running afoul of the borrow checker.
|
|
too_many_arguments = "allow"
|
|
|
|
# We often have large enum variants yet we rarely actually bother with splitting them up.
|
|
large_enum_variant = "allow"
|
|
|
|
# Boolean expressions can be hard to read, requiring only the minimal form gets in the way
|
|
nonminimal_bool = "allow"
|
|
|
|
[workspace.metadata.cargo-machete]
|
|
ignored = [
|
|
"bindgen",
|
|
"cbindgen",
|
|
"prost_build",
|
|
"serde",
|
|
"component",
|
|
"documented",
|
|
"sea-orm-macros",
|
|
]
|