dotfiles

dot files
git clone git://git.rr3.xyz/dotfiles
Log | Files | Refs

commit 6283e1510ea5fa8eb2fe0d510afee24fe9a31cac
parent b473792a33fe86991d6ada1f0686d25ef5aaf388
Author: Robert Russell <robert@rr3.xyz>
Date:   Thu, 24 Apr 2025 00:25:02 -0700

Add zed config

Diffstat:
M.bashrc | 3+++
M.profile | 4++++
Azed/keymap.json | 777+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Azed/settings.json | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 850 insertions(+), 0 deletions(-)

diff --git a/.bashrc b/.bashrc @@ -21,3 +21,5 @@ PROMPT_COMMAND+='PS1+="\n\[\e[32m\]▶\[\e[m\] ";' PS2='\[\e[32m\]▷\[\e[m\] ' source ~/app/z/z.sh + +[ -f "/home/rob/.ghcup/env" ] && . "/home/rob/.ghcup/env" # ghcup-env +\ No newline at end of file diff --git a/.profile b/.profile @@ -7,3 +7,6 @@ export PATSHOME="/opt/ats2/lib/ats2-postiats-0.4.2" # opam configuration test -r /home/rob/.opam/opam-init/init.sh && . /home/rob/.opam/opam-init/init.sh > /dev/null 2> /dev/null || true + + +[ -f "/home/rob/.ghcup/env" ] && . "/home/rob/.ghcup/env" # ghcup-env +\ No newline at end of file diff --git a/zed/keymap.json b/zed/keymap.json @@ -0,0 +1,777 @@ +// TODO: git, pane splits?, search (next, etc.), vim, project_panel +// For the most part, we use ALT as a modifier for application (Zed)-specific +// commands. In a few cases, we use CTRL instead of ALT for consistency with +// other applications (e.g., web browsers). +[ + // Zed application + { + // No "context" field means always active. + "bindings": { + // Buffer font size + "ctrl-alt-pageup": ["zed::IncreaseBufferFontSize", { "persist": false }], + "ctrl-alt-pagedown": ["zed::DecreaseBufferFontSize", { "persist": false }], + "ctrl-alt-home": ["zed::ResetBufferFontSize", { "persist": false }], + + // UI font size + "ctrl-alt-shift-pageup": ["zed::IncreaseUiFontSize", { "persist": false }], + "ctrl-alt-shift-pagedown": ["zed::DecreaseUiFontSize", { "persist": false }], + "ctrl-alt-shift-home": ["zed::ResetUiFontSize", { "persist": false }], + + // Keymap configuration + "f9": "zed::OpenKeymap", + "shift-f9": "zed::OpenDefaultKeymap", + "ctrl-f9": "vim::OpenDefaultKeymap", + "ctrl-shift-f9": "debug::OpenKeyContextView", + + // Settings configuration + "f10": "zed::OpenSettings", + "shift-f10": "zed::OpenDefaultSettings", + "ctrl-f10": "zed::OpenProjectSettings", + + // Fullscreen + "f11": "zed::ToggleFullScreen" + } + }, + + // Menus + { + "context": "Picker || menu", + "bindings": { + // Navigation + "up": "menu::SelectPrevious", + "down": "menu::SelectNext", + "home": "menu::SelectFirst", + "end": "menu::SelectLast", + "pageup": "menu::SelectFirst", + "pagedown": "menu::SelectLast", + "tab": "menu::SelectNext", + "shift-tab": "menu::SelectPrevious", + + // Confirm/cancel + "enter": "menu::Confirm", + "escape": "menu::Cancel" + } + }, + + { + "context": "Workspace", + "bindings": { + "alt-space": "command_palette::Toggle", + "alt-`": "workspace::ToggleZoom", + + // Open new things + "ctrl-t": "workspace::NewFile", + "ctrl-n": "workspace::NewWindow", + "alt-t": "workspace::NewCenterTerminal", + "alt-f": "workspace::NewSearch", + + // Activate panes + "ctrl-alt-up": "workspace::ActivatePaneUp", + "ctrl-alt-down": "workspace::ActivatePaneDown", + "ctrl-alt-left": "workspace::ActivatePaneLeft", + "ctrl-alt-right": "workspace::ActivatePaneRight", + + // Move panes + "ctrl-alt-shift-up": "workspace::SwapPaneUp", + "ctrl-alt-shift-down": "workspace::SwapPaneDown", + "ctrl-alt-shift-left": "workspace::SwapPaneLeft", + "ctrl-alt-shift-right": "workspace::SwapPaneRight", + + // Open/focus side panes + "alt-e": "project_panel::ToggleFocus", + "alt-g": "git_panel::ToggleFocus", + "alt-o": "outline_panel::ToggleFocus", + + // Close side panes + // Ideally, alt-shift-g would only close the git panel and alt-shift-o + // would only close the outline panel, but this is the best we can get + // right now. + "alt-shift-e": "workspace::ToggleLeftDock", + "alt-shift-g": "workspace::ToggleRightDock", + "alt-shift-o": "workspace::ToggleRightDock" + } + }, + + { + "context": "Pane", + "bindings": { + // Activate tabs + "alt-1": ["pane::ActivateItem", 0], + "alt-2": ["pane::ActivateItem", 1], + "alt-3": ["pane::ActivateItem", 2], + "alt-4": ["pane::ActivateItem", 3], + "alt-5": ["pane::ActivateItem", 4], + "alt-6": ["pane::ActivateItem", 5], + "alt-7": ["pane::ActivateItem", 6], + "alt-8": ["pane::ActivateItem", 7], + "alt-left": "pane::ActivatePreviousItem", + "alt-right": "pane::ActivateNextItem", + + // Move tabs + "alt-down": "pane::SwapItemLeft", + "alt-up": "pane::SwapItemRight", + + // Close and reopen tabs + "ctrl-w": "pane::CloseActiveItem", + "ctrl-shift-t": "pane::ReopenClosedItem", + + // Search settings + "alt-r": "search::ToggleRegex", + "alt-c": "search::ToggleCaseSensitive" + } + }, + + // Editor (multi-line or single-line) + { + "context": "Editor", + "bindings": { + // Navigation + "up": "editor::MoveUp", + "down": "editor::MoveDown", + "left": "editor::MoveLeft", + "right": "editor::MoveRight", + "home": ["editor::MoveToBeginningOfLine", { "stop_at_soft_wraps": true, "stop_at_indent": true }], + "end": ["editor::MoveToEndOfLine", { "stop_at_soft_wraps": true }], + "pageup": "editor::MovePageUp", + "pagedown": "editor::MovePageDown", + "ctrl-up": "editor::LineUp", + "ctrl-down": "editor::LineDown", + + // Selections + "shift-up": "editor::SelectUp", + "shift-down": "editor::SelectDown", + "shift-left": "editor::SelectLeft", + "shift-right": "editor::SelectRight", + "shift-home": ["editor::SelectToBeginningOfLine", { "stop_at_soft_wraps": true, "stop_at_indent": true }], + "shift-end": ["editor::SelectToEndOfLine", { "stop_at_soft_wraps": true }], + "shift-pageup": "editor::SelectPageUp", + "shift-pagedown": "editor::SelectPageDown", + "ctrl-a": "editor::SelectAll", + + "tab": "editor::Tab", + "shift-tab": "editor::Backtab", + "backspace": "editor::Backspace", + "delete": "editor::Delete", + + "escape": "editor::Cancel", + "f2": "editor::Rename", + + "ctrl-x": "editor::Cut", + "ctrl-c": "editor::Copy", + "ctrl-v": "editor::Paste", + + "ctrl-z": "editor::Undo", + "ctrl-shift-z": "editor::Redo" + } + }, + + // Editor (multi-line) + { + "context": "Editor && mode == full", + "bindings": { + // Newlines + "enter": "editor::Newline", + "shift-enter": "editor::Newline", + "ctrl-enter": "editor::NewlineBelow", + "ctrl-shift-enter": "editor::NewlineAbove", + + "ctrl-f": "buffer_search::Deploy" + } + }, + + { + "context": "Editor && renaming", + "bindings": { + "enter": "editor::ConfirmRename" + } + }, + + { + "context": "Editor && showing_completions", + "bindings": { + "enter": "editor::ConfirmCompletion" + } + }, + + { + "context": "Editor && (showing_code_actions || showing_completions)", + "bindings": { + "up": "editor::ContextMenuPrevious", + "down": "editor::ContextMenuNext", + "pageup": "editor::ContextMenuFirst", + "pagedown": "editor::ContextMenuLast" + } + }, + + { + // Currently, "VimControl" is an alias for "vim_mode == normal || + // vim_mode == visual || vim_mode == operator", but this could change. + "context": "VimControl && !menu", + "bindings": { + "up": ["vim::Up", { "display_lines": true }], + "shift-up": "editor::AddSelectionAbove", + "ctrl-up": "vim::LineUp", + "ctrl-shift-up": "editor::MoveLineUp", + + "down": ["vim::Down", { "display_lines": true }], + "shift-down": "editor::AddSelectionBelow", + "ctrl-down": "vim::LineDown", + "ctrl-shift-down": "editor::MoveLineDown", + + "left": "vim::Left", + "shift-left": null, // TODO + "ctrl-left": "vim::PreviousWordStart", + "ctrl-shift-left": "editor::SelectToPreviousWordStart", + + "right": "vim::Right", + "shift-right": null, // TODO + "ctrl-right": "vim::NextWordStart", + "ctrl-shift-right": "editor::SelectToNextWordEnd", + + "home": ["vim::FirstNonWhitespace", { "display_lines": true }], + "shift-home": null, + "ctrl-home": ["vim::StartOfLine", { "display_lines": false }], + "ctrl-shift-home": null, + + "end": ["vim::EndOfLine", { "display_lines": true }], + "shift-end": null, + "ctrl-end": ["vim::EndOfLine", { "display_lines": false }], + "ctrl-shift-end": null, + + "pageup": "vim::PageUp", + "shift-pageup": "vim::MoveToPrevious", + "ctrl-pageup": "vim::ScrollUp", + "ctrl-shift-pageup": "vim::StartOfDocument", + + "pagedown": "vim::PageDown", + "shift-pagedown": "vim::MoveToNext", + "ctrl-pagedown": "vim::ScrollDown", + "ctrl-shift-pagedown": "vim::EndOfDocument", + + "enter": "editor::NewlineBelow", + "shift-enter": "editor::NewlineAbove", + "ctrl-enter": null, + "ctrl-shift-enter": null, + + "escape": "vim::SwitchToNormalMode", + "shift-escape": null, + "ctrl-escape": null, + "ctrl-shift-escape": null, + + "insert": null, + "shift-insert": null, + "ctrl-insert": null, + "ctrl-shift-insert": null, + + "delete": "vim::DeleteRight", + "shift-delete": null, + "ctrl-delete": null, + "ctrl-shift-delete": null, + + "space": "vim::WrappingRight", + "shift-space": null, + "ctrl-space": null, + "shift-ctrl-space": null, + + "backspace": "vim::WrappingLeft", + "shift-backspace": null, + "ctrl-backspace": null, + "shift-ctrl-backspace": null, + + "tab": null, + "shift-tab": null, + "ctrl-tab": null, + "ctrl-shift-tab": null, + + "0": ["vim::Number", 0], + ")": null, + "ctrl-0": null, + "ctrl-)": null, + + "1": ["vim::Number", 1], + "!": null, + "ctrl-1": null, + "ctrl-!": null, + + "2": ["vim::Number", 2], + "@": "vim::PushReplayRegister", + "ctrl-2": null, + "ctrl-@": null, + + "3": ["vim::Number", 3], + "#": null, + "ctrl-3": null, + "ctrl-#": null, + + "4": ["vim::Number", 4], + "$": null, + "ctrl-4": null, + "ctrl-$": null, + + "5": ["vim::Number", 5], + "%": null, + "ctrl-5": null, + "ctrl-%": null, + + "6": ["vim::Number", 6], + "^": null, + "ctrl-6": null, + "ctrl-^": null, + + "7": ["vim::Number", 7], + "&": null, + "ctrl-7": null, + "ctrl-&": null, + + "8": ["vim::Number", 8], + "*": null, + "ctrl-8": null, + "ctrl-*": null, + + "9": ["vim::Number", 9], + "(": null, + "ctrl-9": null, + "ctrl-(": null, + + "a": ["vim::PushObject", { "around": true }], + "A": null, + "ctrl-a": null, + "ctrl-A": null, + + "b": null, + "B": null, + "ctrl-b": null, + "ctrl-B": null, + + "c": null, + "C": null, + "ctrl-c": null, + "ctrl-C": null, + + "d": null, + "D": null, + "ctrl-d": null, + "ctrl-D": null, + + "e": "vim::NextWordEnd", + "E": "vim::PreviousWordEnd", + "ctrl-e": "vim::NextSubwordEnd", + "ctrl-E": "vim::PreviousSubwordEnd", + + "f": ["vim::PushFindForward", { "before": false }], + "F": ["vim::PushFindBackward", { "after": false }], + "ctrl-f": "vim::RepeatFind", + "ctrl-F": "vim::RepeatFindReversed", + + "g": ["vim::PushFindForward", { "before": true }], + "G": ["vim::PushFindBackward", { "after": true }], + "ctrl-g": "vim::RepeatFind", + "ctrl-G": "vim::RepeatFindReversed", + + "h": null, + "H": null, + "ctrl-h": null, + "ctrl-H": null, + + "i": ["vim::PushObject", { "around": false }], + "I": null, + "ctrl-i": null, + "ctrl-I": null, + + "j": "vim::JoinLines", + "J": "vim::JoinLinesNoWhitespace", + "ctrl-j": null, + "ctrl-J": null, + + "k": null, + "K": null, + "ctrl-k": null, + "ctrl-K": null, + + "l": null, + "L": null, + "ctrl-l": null, + "ctrl-L": null, + + "m": null, + "M": null, + "ctrl-m": null, + "ctrl-M": null, + + "n": "vim::MoveToNextMatch", + "N": "vim::MoveToPreviousMatch", + "ctrl-n": null, + "ctrl-N": null, + + "o": null, + "O": null, + "ctrl-o": null, + "ctrl-O": null, + + "p": null, + "P": null, + "ctrl-p": null, + "ctrl-P": null, + + "q": "vim::ToggleRecord", + "Q": "vim::ReplayLastRecording", + "ctrl-q": null, + "ctrl-Q": null, + + "r": null, + "R": null, + "ctrl-r": null, + "ctrl-R": null, + + "s": null, + "S": null, + "ctrl-s": null, + "ctrl-S": null, + + "t": null, + "T": null, + "ctrl-t": null, + "ctrl-T": null, + + "u": null, + "U": null, + "ctrl-u": null, + "ctrl-U": null, + + "v": "vim::ToggleVisual", + "V": "vim::ToggleVisualLine", + "ctrl-v": "vim::RestoreVisualSelection", + "ctrl-V": null, + + "w": "vim::NextWordStart", + "W": "vim::PreviousWordStart", + "ctrl-w": "vim::NextSubwordStart", + "ctrl-W": "vim::PreviousSubwordStart", + + "x": null, + "X": null, + "ctrl-x": null, + "ctrl-X": null, + + "y": null, + "Y": null, + "ctrl-y": null, + "ctrl-Y": null, + + "z": null, + "Z": null, + "ctrl-z": null, + "ctrl-Z": null, + + "-": null, + "_": null, + "ctrl--": null, + "ctrl-_": null, + + "=": null, + "+": null, + "ctrl-=": null, + "ctrl-+": null, + + "[": "editor::SelectLargerSyntaxNode", + "{": null, + "ctrl-[": null, + "ctrl-{": null, + + "]": "editor::SelectSmallerSyntaxNode", + "}": null, + "ctrl-]": null, + "ctrl-}": null, + + "\\": "vim::ToggleComments", + "|": "vim::GoToColumn", + "ctrl-\\": null, + "ctrl-|": null, + + ";": null, + ":": null, + "ctrl-;": null, + "ctrl-:": null, + + "'": null, + "\"": null, + "ctrl-'": null, + "ctrl-\"": null, + + ",": null, + "<": null, + "ctrl-,": null, + "ctrl-<": "vim::Outdent", // For workspace::SendKeystrokes + + ".": null, + ">": null, + "ctrl-.": null, + "ctrl->": "vim::Indent", // For workspace::SendKeystrokes + + "/": "vim::Search", + "?": "outline::Toggle", + "ctrl-/": null, + "ctrl-?": "project_symbols::Toggle", + + "`": null, + "~": null, + "ctrl-`": null, + "ctrl-~": null + + //"ctrl-pageup": ["editor::SelectPrevious", { "replace_newest": false }], + //"ctrl-pagedown": ["editor::SelectNext", { "replace_newest": false }], + //"ctrl-shift-pageup": ["editor::SelectPrevious", { "replace_newest": true }], + //"ctrl-shift-pagedown": ["editor::SelectNext", { "replace_newest": true }], + + // "": "vim::PushLowercase", + // "": "vim::PushUppercase", + // "": "vim::PushOppositeCase", + // "": "vim::ConvertToLowerCase", + // "": "vim::ConvertToUpperCase", + // "": "vim::ChangeCase", + // "": "vim::Enter", + // "": "vim::Quotes", + // "": "vim::Literal", + // "": "vim::Argument", + // "": "vim::Exchange", + // "": "vim::Increment", + // "": "vim::Decrement", + // "": "vim::Substitute", + // "": "editor::SelectAllMatches", + // TODO: replace mode + } + }, + + { + "context": "vim_mode == normal", + "bindings": { + // TODO: organize + ":": "command_palette::Toggle", + ".": "vim::Repeat", + "escape": "editor::Cancel", + "+": "vim::Increment", + "-": "vim::Decrement", + + "tab": "vim::Indent", + "shift-tab": "vim::Outdent", + "ctrl-tab": null, + "ctrl-shift-tab": null, + + "a": "vim::InsertAfter", + "A": "vim::InsertEndOfLine", + "ctrl-a": null, + "ctrl-A": null, + + "c": "vim::PushChange", + "C": "vim::ChangeToEndOfLine", + "ctrl-c": null, + "ctrl-C": null, + + "d": "vim::PushDelete", + "D": "vim::DeleteToEndOfLine", + "ctrl-d": null, + "ctrl-D": null, + + "i": "vim::InsertBefore", + "I": "vim::InsertFirstNonWhitespace", + "ctrl-i": null, + "ctrl-I": null, + + "o": "vim::InsertLineBelow", + "O": "vim::InsertLineAbove", + "ctrl-o": null, + "ctrl-O": null, + + "p": ["vim::Paste", { "preserve_clipboard": true, "before": false }], + "P": ["vim::Paste", { "preserve_clipboard": true, "before": true }], + "ctrl-p": null, + "ctrl-P": null, + + "r": null, + "R": null, + "ctrl-r": "vim::Redo", + "ctrl-R": null, + + "s": "vim::Substitute", + "S": "vim::SubstituteLine", + "ctrl-s": null, + "ctrl-S": null, + + "u": "vim::Undo", + "U": "vim::Redo", + "ctrl-u": null, + "ctrl-U": null, + + "x": "vim::DeleteRight", + "X": "editor::DeleteLine", + "ctrl-x": null, + "ctrl-X": null, + + "y": "vim::PushYank", + "Y": "vim::YankLine", + "ctrl-y": null, + "ctrl-Y": null + } + }, + + { + "context": "vim_mode == visual", + "bindings": { + // TODO: organize + ":": "vim::VisualCommand", + "escape": "vim::SwitchToNormalMode", + "+": "vim::Increment", + "-": "vim::Decrement", + + "delete": "vim::VisualDelete", + "shift-delete": null, + "ctrl-delete": null, + "ctrl-shift-delete": null, + + "tab": ["workspace::SendKeystrokes", "ctrl-> ctrl-v"], + "shift-tab": ["workspace::SendKeystrokes", "ctrl-< ctrl-v"], + "ctrl-tab": null, + "ctrl-shift-tab": null, + + "c": "vim::Substitute", + "C": "vim::SubstituteLine", + "ctrl-c": null, + "ctrl-C": null, + + "d": "vim::VisualDelete", + "D": "vim::VisualDeleteLine", + "ctrl-d": null, + "ctrl-D": null, + + "p": ["vim::Paste", { "preserve_clipboard": true }], + "P": ["vim::Paste", { "preserve_clipboard": true }], + "ctrl-p": null, + "ctrl-P": null, + + "s": "vim::Substitute", + "S": "vim::SubstituteLine", + "ctrl-s": null, + "ctrl-S": null, + + "x": "vim::VisualDelete", + "X": "vim::VisualDeleteLine", + "ctrl-x": null, + "ctrl-X": null, + + "y": "vim::VisualYank", + "Y": "vim::VisualYankLine", + "ctrl-y": null, + "ctrl-Y": null + } + }, + + { + "context": "vim_mode == insert", + "bindings": { + "escape": "vim::NormalBefore", + "ctrl-c": "editor::Paste", + "ctrl-space": "editor::ShowCompletions" + } + }, + + // Make escape leave insert mode even if completions are showing. + { + "context": "Editor && vim_mode == insert && showing_completions", + "bindings": { + "escape": "vim::NormalBefore" + } + }, + + { + "context": "vim_mode == operator", + "bindings": { + "escape": "vim::ClearOperators" + } + }, + + { + "context": "vim_operator == a || vim_operator == i", + "bindings": { + "w": "vim::Word", + "'": "vim::Quotes", + "\"": "vim::DoubleQuotes", + "`": "vim::BackQuotes", + + "(": "vim::Parentheses", + ")": "vim::Parentheses", + + "[": "vim::SquareBrackets", + "]": "vim::SquareBrackets", + + "{": "vim::CurlyBrackets", + "}": "vim::CurlyBrackets", + + "<": "vim::AngleBrackets", + ">": "vim::AngleBrackets" + } + }, + + { + "context": "vim_operator == c", + "bindings": { + "c": "vim::CurrentLine" + } + }, + + { + "context": "vim_operator == d", + "bindings": { + "d": "vim::CurrentLine" + } + }, + + { + "context": "vim_operator == y", + "bindings": { + "y": "vim::CurrentLine" + } + }, + + { + "context": "BufferSearchBar", + "bindings": { + "enter": "vim::SearchSubmit", + "escape": "buffer_search::Dismiss" + } + }, + + //"": "vim::Word", + //"": "vim::Subword", + //"": "vim::OtherEnd", + //"": "vim::StartOfLine", + //"": "vim::EndOfLine", + //"": "vim::CurrentLine", + //"": "vim::Quotes", + //"": "vim::DoubleQuotes", + //"": "vim::BackQuotes", + //"": "vim::AnyQuotes", + //"": "vim::Parentheses", + //"": "vim::SquareBrackets", + //"": "vim::CurlyBrackets", + //"": "vim::AngleBrackets", + // TODO: Establish "logical" editing language. E.g., instead of `D` to delete + // to end of line (which is a sort of special case of `d`), use `d l` instead, + // where `l` is the EndOfLine object (as below). + + { + "context": "Terminal", + "bindings": { + "ctrl-shift-c": "terminal::Copy", + "ctrl-shift-v": "terminal::Paste", + + "ctrl-shift-up": "terminal::ScrollLineUp", + "ctrl-shift-down": "terminal::ScrollLineDown", + + "ctrl-shift-pageup": "terminal::ScrollPageUp", + "ctrl-shift-pagedown": "terminal::ScrollPageDown", + + "ctrl-shift-home": "terminal::ScrollToTop", + "ctrl-shift-end": "terminal::ScrollToBottom" + } + } +] diff --git a/zed/settings.json b/zed/settings.json @@ -0,0 +1,66 @@ +{ + // Keybindings + "base_keymap": "None", + "vim_mode": true, + + // Editor + "use_autoclose": false, + "cursor_blink": false, + "vertical_scroll_margin": 3, + "search": { "regex": true }, + "gutter": { "folds": false }, + "wrap_guides": [80, 120, 160], + "relative_line_numbers": true, + "preferred_line_length": 160, // This only affects soft wrap. + + // UI + "tabs": { "show_close_button": "hidden" }, // I don't want to accidentally close tabs. + "git_panel": { "dock": "right" }, + "outline_panel": { "dock": "right" }, + + // Style + "ui_font_size": 16, + "buffer_font_size": 16, + "buffer_font_family": "JuliaMono", + "theme": { + "mode": "system", + "light": "KTRZ Monokai", + "dark": "KTRZ Monokai" + }, + "experimental.theme_overrides": { + "syntax": { + "comment": { "color": "#808080", "font_style": "italic" }, + "constructor": { "color": "#e0690d" }, + "function": { "color": "#d7d7d7" }, + "punctuation.bracket": { "color": "#a7a7a7" }, + "punctuation.delimiter": { "color": "#a7a7a7" }, + "variable": { "color": "#d7d7d7" } + } + }, + + // LSP + "lsp": { + "hls": { + "initialization_options": { + "haskell": { "formattingProvider": "fourmolu" } + } + } + }, + + // Disable some crap + "assistant": { + "version": "1", // I don't know what this is. The settings linter says it's necessary. + "button": false + }, + "features": { "edit_prediction_provider": "none" }, + "collaboration_panel": { "button": false }, + "tab_bar": { + "show_nav_history_buttons": false, + "show_tab_bar_buttons": false + }, + "terminal": { "button": false }, + "telemetry": { + "diagnostics": false, + "metrics": false + } +}