add settings for zed
4 files changed, 202 insertions(+), 0 deletions(-)
M user/hosts/prefect.nix → user/hosts/prefect.nix
@@ -22,6 +22,7 @@ ../settings/ssh.nix ../settings/tabnine.nix ../settings/user-interface.nix ../settings/xresources.nix + ../settings/zed.nix ]; home.username = "alin";
M user/settings/development/base.nix → user/settings/development/base.nix
@@ -68,6 +68,24 @@ dockerls.enable = true; }; }; + programs.zed-editor.extensions = [ + "toml" + "git-firefly" + "dockerfile" + "make" + "sql" + "nix" + "basher" + "env" + "ini" + "fish" + "just" + "elisp" + "ssh-config" + "caddyfile" + "awk" + ]; + editorconfig = { enable = true; settings = {
M user/settings/development/golang.nix → user/settings/development/golang.nix
@@ -41,4 +41,9 @@ programs.nixvim.plugins.lsp.servers = { gopls.enable = true; golangci_lint_ls.enable = true; }; + programs.zed-editor.extensions = [ + "live-template" + "golangci-lint" + "gosum" + ]; }
A user/settings/zed.nix
@@ -0,0 +1,178 @@ +{ + config, + pkgs, + lib, + ... +}: +{ + programs.zed-editor = { + enable = true; + installRemoteServer = true; + userSettings = { + base_keymap = "Emacs"; + vim_mode = true; + tab_size = 2; + tab_bar = { + show = true; + show_nav_history_buttons = false; + show_tab_bar_buttons = false; + }; + toolbar = { + breadcrumbs = false; + quick_actions = false; + selections_menu = false; + }; + theme = { + mode = "system"; + light = "One Light"; + dark = "One Dark"; + }; + cursor_blink = false; + current_line_highlight = "gutter"; + indent_guides.enabled = false; + git = { + git_gutter = "hide"; + inline_blame.enabled = false; + }; + gutter = { + runnables = false; + breakpoints = false; + folds = false; + }; + pane_split_direction_vertical = "right"; + use_smartcase_search = true; + seed_search_query_from_cursor = "always"; + inlay_hints = { + enabled = true; + show_type_hints = true; + show_parameter_hints = false; + }; + file_types = { + "Shell Script" = [ "envrc" ]; + }; + project_panel = { + entry_spacing = "standard"; + file_icons = false; + folder_icons = false; + indent_size = 16; + }; + preview_tabs.enabled = false; + collaboration_panel.button = false; + vim = { + toggle_relative_line_numbers = true; + }; + }; + + userKeymaps = [ + { + context = "VimControl && !menu"; + bindings = { + "alt-x" = "command_palette::Toggle"; + "," = null; + ", f f" = "file_finder::Toggle"; + ", b b" = "file_finder::Toggle"; + ", f s" = "workspace::Save"; + ", p" = "projects::OpenRecent"; + ", r" = "editor::Rename"; + ", w d" = "editor::GoToDefinitionSplit"; + ", w g d" = "editor::GoToDefinitionSplit"; + ", w shift-d" = "editor::GoToTypeDefinitionSplit"; + ", w g shift-d" = "editor::GoToTypeDefinitionSplit"; + ", w space" = "editor::OpenExcerptsSplit"; + ", w g space" = "editor::OpenExcerptsSplit"; + ", b x" = "pane::CloseActiveItem"; + ", q" = "pane::CloseActiveItem"; + }; + } + { + context = "ProjectPanel || CollabPanel || OutlinePanel || ChatPanel || VimControl || EmptyPane || SharedScreen || MarkdownPreview || KeyContextView"; + bindings = { + ", w" = null; + ", w left" = "workspace::ActivatePaneLeft"; + ", w right" = "workspace::ActivatePaneRight"; + ", w up" = "workspace::ActivatePaneUp"; + ", w down" = "workspace::ActivatePaneDown"; + ", w h" = "workspace::ActivatePaneLeft"; + ", w l" = "workspace::ActivatePaneRight"; + ", w k" = "workspace::ActivatePaneUp"; + ", w j" = "workspace::ActivatePaneDown"; + ", w ctrl-h" = "workspace::ActivatePaneLeft"; + ", w ctrl-l" = "workspace::ActivatePaneRight"; + ", w ctrl-k" = "workspace::ActivatePaneUp"; + ", w ctrl-j" = "workspace::ActivatePaneDown"; + ", w shift-left" = "workspace::SwapPaneLeft"; + ", w shift-right" = "workspace::SwapPaneRight"; + ", w shift-up" = "workspace::SwapPaneUp"; + ", w shift-down" = "workspace::SwapPaneDown"; + ", w shift-h" = "workspace::SwapPaneLeft"; + ", w shift-l" = "workspace::SwapPaneRight"; + ", w shift-k" = "workspace::SwapPaneUp"; + ", w shift-j" = "workspace::SwapPaneDown"; + ", w 1" = [ + "workspace::ActivatePane" + 0 + ]; + ", w 2" = [ + "workspace::ActivatePane" + 1 + ]; + ", w 3" = [ + "workspace::ActivatePane" + 2 + ]; + ", w 4" = [ + "workspace::ActivatePane" + 3 + ]; + ", w 5" = [ + "workspace::ActivatePane" + 4 + ]; + ", w 6" = [ + "workspace::ActivatePane" + 5 + ]; + ", w 7" = [ + "workspace::ActivatePane" + 6 + ]; + ", w 8" = [ + "workspace::ActivatePane" + 7 + ]; + ", w 9" = [ + "workspace::ActivatePane" + 8 + ]; + ", w >" = "vim::ResizePaneRight"; + ", w <" = "vim::ResizePaneLeft"; + ", w -" = "vim::ResizePaneDown"; + ", w +" = "vim::ResizePaneUp"; + ", w _" = "vim::MaximizePane"; + ", w =" = "vim::ResetPaneSizes"; + ", w g t" = "pane::ActivateNextItem"; + ", w ctrl-g t" = "pane::ActivateNextItem"; + ", w g shift-t" = "pane::ActivatePreviousItem"; + ", w ctrl-g shift-t" = "pane::ActivatePreviousItem"; + ", w w" = "workspace::ActivateNextPane"; + ", w p" = "workspace::ActivatePreviousPane"; + ", w ctrl-p" = "workspace::ActivatePreviousPane"; + ", w shift-w" = "workspace::ActivatePreviousPane"; + ", w v" = "pane::SplitVertical"; + ", w ctrl-v" = "pane::SplitVertical"; + ", w s" = "pane::SplitHorizontal"; + ", w shift-s" = "pane::SplitHorizontal"; + ", w ctrl-s" = "pane::SplitHorizontal"; + ", w c" = "pane::CloseAllItems"; + ", w ctrl-c" = "pane::CloseAllItems"; + ", w q" = "pane::CloseAllItems"; + ", w ctrl-q" = "pane::CloseAllItems"; + ", w o" = "workspace::CloseInactiveTabsAndPanes"; + ", w ctrl-o" = "workspace::CloseInactiveTabsAndPanes"; + ", w n" = "workspace::NewFileSplitHorizontal"; + ", w ctrl-n" = "workspace::NewFileSplitHorizontal"; + }; + } + ]; + }; +}