From 78bf0390b92a9873effd606dd62d9c3d8b6f22e6 Mon Sep 17 00:00:00 2001 From: Daniel Heras Quesada Date: Sun, 1 Nov 2026 23:05:32 +0100 Subject: [PATCH] feat: visual editor configs --- gram/.gram/settings.jsonc | 3 + gram/keymap.jsonc | 121 +++++++ gram/settings.jsonc | 644 +++++++++++++++++++++----------------- zed | 1 + 4 files changed, 485 insertions(+), 284 deletions(-) create mode 100644 gram/.gram/settings.jsonc create mode 100644 gram/keymap.jsonc create mode 160000 zed diff --git a/gram/.gram/settings.jsonc b/gram/.gram/settings.jsonc new file mode 100644 index 0000000..7759c11 --- /dev/null +++ b/gram/.gram/settings.jsonc @@ -0,0 +1,3 @@ +{ + "show_wrap_guides": true +} diff --git a/gram/keymap.jsonc b/gram/keymap.jsonc new file mode 100644 index 0000000..ca42e3f --- /dev/null +++ b/gram/keymap.jsonc @@ -0,0 +1,121 @@ +// ╭────────────────────────────────╮ +// │- Gram editor keys -│ +// │- author: Daniel Heras Quesada -│ +// ╰────────────────────────────────╯ +[ + { + "context": "Workspace || Editor || OutlinePanel || ProjectPanel || GitPanel || Terminal", + "bindings": { + "ctrl-h": "workspace::ActivatePaneLeft", + "ctrl-l": "workspace::ActivatePaneRight", + "ctrl-k": "workspace::ActivatePaneUp", + "ctrl-j": "workspace::ActivatePaneDown", + "ctrl-shift-f": "project_search::SearchInNew", + "ctrl-shift-x": "task::Rerun", + + "ctrl-e": "project_panel::ToggleFocus", + "ctrl-a": "outline_panel::ToggleFocus", + "ctrl-g": "git_panel::ToggleFocus", + + "ctrl-p": "projects::OpenRecent", + "ctrl-x": "task::Spawn", + "ctrl-z": "workspace::ToggleBottomDock", + "ctrl-m": "workspace::ToggleCenteredLayout", + }, + }, + { + "context": "Editor", + "bindings": { + "ctrl-t": "workspace::NewFile", + "ctrl-w": "pane::CloseActiveItem", + "ctrl-W": "pane::CloseOtherItems", + + "ctrl-shift-l": "pane::SplitRight", + "ctrl-shift-j": "pane::SplitDown", + "ctrl-shift-h": "pane::SplitLeft", + "ctrl-shift-k": "pane::SplitUp", + }, + }, + { + "context": "Editor && vim_mode == insert", + "bindings": { + // "j k": [ + // "workspace::SendKeystrokes", + // "escape" + // ] + }, + }, + { + "context": "OutlinePanel", + "bindings": { + "ctrl-a": "outline_panel::Toggle", + }, + }, + { + "context": "ProjectPanel", + "bindings": { + "ctrl-e": "project_panel::Toggle", + "f12": "project_panel::Rename", + "shift-enter": "workspace::OpenWithSystem", + }, + }, + { + "context": "GitPanel", + "bindings": { + "ctrl-g": "git_panel::Toggle", + }, + }, + { + "context": "ProjectPanel && not_editing", + "bindings": { + "d": "project_panel::Delete", + "c": "project_panel::Copy", + "r": "project_panel::Rename", + "x": "project_panel::Cut", + "Y": "workspace::CopyPath", + "y": "project_panel::Copy", + "p": "project_panel::Paste", + "a": "project_panel::NewFile", + "A": "project_panel::NewDirectory", + "/": "project_panel::NewSearchInDirectory", + "g h": "git::FileHistory", + }, + }, + { + "context": "Editor && (showing_code_actions || showing_completions)", + "bindings": { + "up": "editor::ContextMenuPrevious", + "down": "editor::ContextMenuNext", + "pageup": "editor::ContextMenuFirst", + "pagedown": "editor::ContextMenuLast", + "tab": "editor::ContextMenuNext", + "shift-tab": "editor::ContextMenuPrevious", + }, + }, + { + "context": "Editor && vim_mode == normal", + "bindings": { + "shift-tab": "pane::ActivatePreviousItem", + "tab": "pane::ActivateNextItem", + + "space a": "outline::Toggle", + "space r": "editor::Rename", + "space x": "pane::CloseActiveItem", + "space X": "pane::CloseAllItems", + "space g g": "git_panel::Toggle", + "space g h": "editor::ToggleSelectedDiffHunks", + "space g b": "git::Blame", + "space f a": "pane::DeploySearch", + "space f w": "project_symbols::Toggle", + "space f f": "file_finder::Toggle", + "space space": "editor::FindAllReferences", + }, + }, + { + "context": "Terminal", + "bindings": { + "ctrl-t": "workspace::NewTerminal", + "ctrl-w": "pane::CloseActiveItem", + }, + }, +] diff --git a/gram/settings.jsonc b/gram/settings.jsonc index 75e9c35..c618604 100644 --- a/gram/settings.jsonc +++ b/gram/settings.jsonc @@ -3,288 +3,364 @@ // │- author: Daniel Heras Quesada -│ // ╰────────────────────────────────╯ { - // ╭─────────╮ - // │ General │ - // ╰─────────╯ - "tasks": { - "prefer_lsp": true, - }, - "icon_theme": "Gram (Default)", - "proxy": "", - "use_system_window_tabs": false, - "window_decorations": "client", - "status_bar": { - "active_encoding_button": "enabled", - "line_endings_button": true, - }, - "git_panel": { - "dock": "left", - }, - "base_keymap": "VSCode", - "restore_on_startup": "last_session", - // ╭─────────╮ - // │ Styling │ - // ╰─────────╯ - "theme": "Gruvbox Light Soft", - "unnecessary_code_fade": 0.2, - // ╭──────╮ - // │ Font │ - // ╰──────╯ - "ui_font_size": 10.0, - "ui_font_family": "JetBrainsMonoNL Nerd Font Mono", - "buffer_font_size": 10.0, - "buffer_font_family": "JetBrainsMono Nerd Font", - "buffer_font_weight": 400, - "buffer_line_height": "comfortable", - // ╭────────╮ - // │ Editor │ - // ╰────────╯ - "always_treat_brackets_as_autoclosed": false, - "autosave": "off", - "autoscroll_on_clicks": true, - "confirm_quit": false, - "current_line_highlight": "all", - "cursor_blink": true, - "cursor_shape": "bar", - "tab_size": 4, // May cause errors on colaborative projects wrongly configured - "git": { - "git_gutter": "tracked_files", - "inline_blame": { - "enabled": true, - "show_commit_summary": true, - }, - }, - "hard_tabs": true, - "hover_popover_enabled": false, - "hover_popover_delay": 0, - "indent_guides": { - "enabled": true, - "line_width": 1, - "active_line_width": 2, - "coloring": "fixed", - "background_coloring": "disabled", - }, - "inlay_hints": { - "enabled": false, - "show_type_hints": true, - "show_parameter_hints": true, - "show_other_hints": true, - "show_background": false, - "edit_debounce_ms": 700, - "scroll_debounce_ms": 50, - }, - "selection_highlight": true, - "show_wrap_guides": true, - "show_completions_on_input": true, - "show_whitespaces": "selection", - "wrap_guides": [80], - "relative_line_numbers": "enabled", - "scrollbar": { - "show": "auto", - "cursors": true, - "git_diff": true, - "search_results": true, - "selected_text": true, - "selected_symbol": true, - "diagnostics": "all", - "axes": { - "horizontal": false, - "vertical": true, - }, - }, - "vim_mode": true, - "soft_wrap": "editor_width", - // ╭────────╮ - // │ Layout │ - // ╰────────╯ - "centered_layout": { - "left_padding": 0.35, - "right_padding": 0.35, - }, - "diagnostics": { - "button": true, - "include_warnings": true, - "inline": { - "enabled": true, - "update_debounce_ms": 150, - "padding": 4, - "min_column": 0, - "max_severity": null, - }, - }, - "title_bar": { - "show_user_picture": false, - "show_onboarding_banner": false, - "show_menus": false, - "show_project_items": true, - "show_branch_name": true, - }, - "minimap": { - "show": "never", - "thumb": "always", - "thumb_border": "left_open", - "current_line_highlight": "all", - }, - "outline_panel": { - "button": true, - "default_width": 240, - "dock": "left", - "file_icons": true, - "folder_icons": true, - "git_status": true, - "indent_size": 20, - "auto_reveal_entries": true, - "auto_fold_dirs": true, - "indent_guides": { - "show": "never", - }, - "scrollbar": { - "show": null, - }, - }, - "preview_tabs": { - "enabled": false, - "enable_preview_from_file_finder": false, - "enable_keep_preview_on_code_navigation": false, - }, - "project_panel": { - "button": true, - "default_width": 240, - "dock": "left", - "entry_spacing": "comfortable", - "file_icons": true, - "folder_icons": true, - "git_status": true, - "indent_size": 20, - "auto_reveal_entries": true, - "auto_fold_dirs": true, - "scrollbar": { - "show": null, - }, - "indent_guides": { - "show": "never", - }, - }, - // "proxy": "http://127.0.0.1:10809", - "search": { - "whole_word": false, - "case_sensitive": false, - "include_ignored": false, - "button": true, - "regex": true, - }, - "tab_bar": { - "show": true, - "show_nav_history_buttons": false, - "show_tab_bar_buttons": true, - }, - "tabs": { - "show_diagnostics": "all", - "close_position": "right", - "file_icons": true, - "git_status": true, - "activate_on_close": "neighbour", - "show_close_button": "hover", - }, - "toolbar": { - "breadcrumbs": true, - "quick_actions": true, - }, - "terminal": { - "alternate_scroll": "off", - "blinking": "terminal_controlled", - "copy_on_select": false, - "dock": "bottom", - "detect_venv": { - "on": { - "directories": [".env", "env", ".venv", "venv"], - "activate_script": "default", - }, - }, - "env": { - "ZED": "1", - "EXAMPLE": "test:dqnid", - "BLUEPRINTS_PATHS": "./.blueprints", - }, - // "font_family": null, - "font_features": null, - "font_size": 14, - "line_height": "comfortable", - "option_as_meta": true, - "button": true, - "shell": "system", - "scrollbar": { - "show": "never", - }, - "working_directory": "current_project_directory", - }, - // ╭─────╮ - // │ LSP │ - // ╰─────╯ - "format_on_save": "on", - "formatter": "auto", - "ensure_final_newline_on_save": true, - "enable_language_server": true, - "use_autoclose": true, - "languages": { - "Astro": { - "tab_size": 4, - }, - "HTML": { - "tab_size": 2, - }, - "JSON": { - "tab_size": 4, - }, - "JavaScript": { - // "formatter": "prettier", - "format_on_save": "on", - "tab_size": 2, - "preferred_line_length": 65, - "code_actions_on_format": { - "source.organizeImports": true, - }, - }, - "TypeScript": { - // "formatter": "prettier", - "format_on_save": "on", - "preferred_line_length": 65, - "language_servers": ["typescript-language-server", "!vtsls"], - "code_actions_on_format": { - "source.organizeImports": true, - }, - }, - "TSX": { - // "formatter": "prettier", - "format_on_save": "on", - "preferred_line_length": 85, - "language_servers": ["typescript-language-server", "!vtsls"], - // "formatter": { - // "external": { - // "command": "prettier", - // "arguments": ["--stdin-filepath", "{buffer_path}"] - // } - // }, - "code_actions_on_format": { - "source.organizeImports": true, - }, - }, - }, - "file_types": { - "C++": ["c"], - "TOML": ["MyLockFile"], - "Dockerfile": ["Dockerfile*"], - }, - "file_scan_exclusions": [ - "**/.git", - "**/.svn", - "**/.hg", - "**/.jj", - "**/CVS", - "**/.DS_Store", - "**/Thumbs.db", - "**/.classpath", - "**/.settings", - ], - "file_scan_inclusions": [".env*"], + // ╭─────────╮ + // │ General │ + // ╰─────────╯ + "dap": { + "JavaScript": { + "enable_auto_updates": true, + "ignore_system_version": false, + "allow_binary_download": true + } + }, + "lsp": { + "tailwindcss-language-server": { + "binary": { + "enable_auto_updates": true, + "allow_binary_download": true, + "ignore_system_version": false + }, + "enable_lsp_tasks": true + }, + "astro-language-server": { + "binary": { + "enable_auto_updates": true, + "ignore_system_version": false, + "allow_binary_download": true + }, + "enable_lsp_tasks": true + }, + "typescript-language-server": { + "binary": { + "enable_auto_updates": false, + "ignore_system_version": false, + "allow_binary_download": false + }, + "enable_lsp_tasks": true + }, + "json-language-server": { + "binary": { + "enable_auto_updates": true, + "ignore_system_version": true, + "allow_binary_download": true + }, + "enable_lsp_tasks": true + } + }, + "node": { + "allow_npm_install": true, + "allow_prettier_download": true, + "allow_binary_download": true + }, + "active_pane_modifiers": { + "border_size": 0.0, + }, + "text_rendering_mode": "platform_default", + "prettier": { + "allowed": true, + }, + "tasks": { + "prefer_lsp": true, + }, + "icon_theme": "Gram (Default)", + "proxy": "", + "use_system_window_tabs": true, + "window_decorations": "server", + "status_bar": { + "active_encoding_button": "enabled", + "line_endings_button": true, + }, + "git_panel": { + "dock": "left", + }, + "base_keymap": "VSCode", + "restore_on_startup": "last_session", + // ╭─────────╮ + // │ Styling │ + // ╰─────────╯ + "theme": "Ayu Mirage", + "unnecessary_code_fade": 0.2, + // ╭──────╮ + // │ Font │ + // ╰──────╯ + "ui_font_size": 9.0, + "ui_font_family": "JetBrainsMono Nerd Font", + "buffer_font_size": 9.0, + "buffer_font_family": "JetBrainsMono Nerd Font", + "buffer_font_weight": 400, + "buffer_line_height": "comfortable", + // ╭────────╮ + // │ Editor │ + // ╰────────╯ + "always_treat_brackets_as_autoclosed": false, + "autosave": "off", + "autoscroll_on_clicks": true, + "confirm_quit": false, + "current_line_highlight": "all", + "cursor_blink": true, + "cursor_shape": "bar", + "tab_size": 4, // May cause errors on colaborative projects wrongly configured + "git": { + "git_gutter": "tracked_files", + "inline_blame": { + "enabled": true, + "show_commit_summary": true, + }, + }, + "hard_tabs": true, + "hover_popover_enabled": false, + "hover_popover_delay": 0, + "indent_guides": { + "enabled": true, + "line_width": 1, + "active_line_width": 2, + "coloring": "fixed", + "background_coloring": "disabled", + }, + "inlay_hints": { + "enabled": false, + "show_type_hints": true, + "show_parameter_hints": true, + "show_other_hints": true, + "show_background": false, + "edit_debounce_ms": 700, + "scroll_debounce_ms": 50, + }, + "selection_highlight": true, + "show_wrap_guides": true, + "show_completions_on_input": true, + "show_whitespaces": "selection", + "wrap_guides": [80], + "relative_line_numbers": "enabled", + "scrollbar": { + "show": "auto", + "cursors": true, + "git_diff": true, + "search_results": true, + "selected_text": true, + "selected_symbol": true, + "diagnostics": "all", + "axes": { + "horizontal": false, + "vertical": true, + }, + }, + "vim_mode": true, + "soft_wrap": "editor_width", + // ╭────────╮ + // │ Layout │ + // ╰────────╯ + "centered_layout": { + "left_padding": 0.35, + "right_padding": 0.35, + }, + "diagnostics": { + "button": true, + "include_warnings": true, + "inline": { + "enabled": true, + "update_debounce_ms": 150, + "padding": 4, + "min_column": 0, + "max_severity": null, + }, + }, + "title_bar": { + "show_branch_icon": true, + "show": false, + "show_user_picture": false, + "show_onboarding_banner": false, + "show_menus": true, + "show_project_items": true, + "show_branch_name": true, + }, + "minimap": { + "show": "never", + "thumb": "always", + "thumb_border": "left_open", + "current_line_highlight": "all", + }, + "outline_panel": { + "button": true, + "default_width": 240, + "dock": "left", + "file_icons": true, + "folder_icons": true, + "git_status": true, + "indent_size": 20, + "auto_reveal_entries": true, + "auto_fold_dirs": true, + "indent_guides": { + "show": "never", + }, + "scrollbar": { + "show": null, + }, + }, + "preview_tabs": { + "enable_preview_multibuffer_from_code_navigation": false, + "enabled": true, + "enable_preview_from_file_finder": false, + "enable_keep_preview_on_code_navigation": false, + }, + "project_panel": { + "button": true, + "default_width": 240, + "dock": "left", + "entry_spacing": "comfortable", + "file_icons": true, + "folder_icons": true, + "git_status": true, + "indent_size": 20, + "auto_reveal_entries": true, + "auto_fold_dirs": true, + "scrollbar": { + "show": null, + }, + "indent_guides": { + "show": "never", + }, + }, + // "proxy": "http://127.0.0.1:10809", + "search": { + "whole_word": false, + "case_sensitive": false, + "include_ignored": false, + "button": true, + "regex": true, + }, + "tab_bar": { + "show": true, + "show_nav_history_buttons": false, + "show_tab_bar_buttons": "on_pane_focus", + }, + "tabs": { + "show_diagnostics": "all", + "close_position": "right", + "file_icons": true, + "git_status": true, + "activate_on_close": "neighbour", + "show_close_button": "hover", + }, + "toolbar": { + "breadcrumbs": true, + "quick_actions": true, + }, + "terminal": { + "alternate_scroll": "off", + "blinking": "terminal_controlled", + "copy_on_select": false, + "dock": "bottom", + "detect_venv": { + "on": { + "directories": [".env", "env", ".venv", "venv"], + "activate_script": "default", + }, + }, + "env": { + "ZED": "1", + "EXAMPLE": "test:dqnid", + "BLUEPRINTS_PATHS": "./.blueprints", + }, + // "font_family": null, + "font_features": null, + "font_size": 9.0, + "line_height": "comfortable", + "option_as_meta": true, + "button": true, + "shell": "system", + "scrollbar": { + "show": "never", + }, + "working_directory": "current_project_directory", + }, + // ╭─────╮ + // │ LSP │ + // ╰─────╯ + "format_on_save": "on", + "formatter": "auto", + "ensure_final_newline_on_save": true, + "enable_language_server": true, + "use_autoclose": true, + "languages": { + "JSONC": { + // "formatter": "prettier", + "format_on_save": "on", + "preferred_line_length": 85, + "formatter": { + "external": { + "command": "prettier", + "arguments": ["--stdin-filepath", "{buffer_path}"], + }, + }, + "code_actions_on_format": { + "source.organizeImports": true, + }, + }, + "Astro": { + "formatter": { + "external": { + "command": "prettier", + "arguments": ["--stdin-filepath", "{buffer_path}"], + }, + }, + "tab_size": 4, + }, + "HTML": { + "tab_size": 2, + }, + "JSON": { + "tab_size": 4, + }, + "JavaScript": { + // "formatter": "prettier", + "format_on_save": "on", + "tab_size": 2, + "preferred_line_length": 65, + "code_actions_on_format": { + "source.organizeImports": true, + }, + }, + "TypeScript": { + // "formatter": "prettier", + "format_on_save": "on", + "preferred_line_length": 65, + "language_servers": ["typescript-language-server", "!vtsls"], + "code_actions_on_format": { + "source.organizeImports": true, + }, + }, + "TSX": { + // "formatter": "prettier", + "format_on_save": "on", + "preferred_line_length": 85, + "language_servers": ["typescript-language-server", "!vtsls"], + // "formatter": { + // "external": { + // "command": "prettier", + // "arguments": ["--stdin-filepath", "{buffer_path}"] + // } + // }, + "code_actions_on_format": { + "source.organizeImports": true, + }, + }, + }, + "file_types": { + "C++": ["c"], + "TOML": ["MyLockFile"], + "Dockerfile": ["Dockerfile*"], + }, + "file_scan_exclusions": [ + "**/.git", + "**/.svn", + "**/.hg", + "**/.jj", + "**/CVS", + "**/.DS_Store", + "**/Thumbs.db", + "**/.classpath", + "**/.settings", + ], + "file_scan_inclusions": [".env*"], } diff --git a/zed b/zed new file mode 160000 index 0000000..5efe72e --- /dev/null +++ b/zed @@ -0,0 +1 @@ +Subproject commit 5efe72e2d78ddaebc9e9f0fe3c69ea0e7f4a4bd1