From a2d51c1a4def08e45e4f73305378b3db251a9dae Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 13 Mar 2025 10:41:01 +0100 Subject: [PATCH] Initial commit --- keymap.json | 107 +++++++++++++++++++++++++++++++++++++++++++ settings.json | 77 +++++++++++++++++++++++++++++++ snippets/jinja2.json | 57 +++++++++++++++++++++++ 3 files changed, 241 insertions(+) create mode 100644 keymap.json create mode 100644 settings.json create mode 100644 snippets/jinja2.json diff --git a/keymap.json b/keymap.json new file mode 100644 index 0000000..e18dbcc --- /dev/null +++ b/keymap.json @@ -0,0 +1,107 @@ +// Zed keymap +// +// For information on binding keys, see the Zed +// documentation: https://zed.dev/docs/key-bindings +// +// To see the default key bindings run `zed: open default keymap` +// from the command palette. +[ + { + "context": "Workspace", + "bindings": { + // "shift shift": "file_finder::Toggle" + // "escape": "project_panel::ToggleFocus" + // "ctrl-j": null, + } + }, + { + "context": "Pane", + "bindings": { + // "ctrl-tab": "pane::ActivateNextItem" + // "ctrl-shift-tab": "pane::ActivatePrevItem", + // "ctrl-pageup": "pane::ActivatePrevItem", // default + // "ctrl-pagedown": "pane::ActivateNextItem" // default + // "ctrl-shift-pageup": "pane::SwapItemLeft", // default + // "ctrl-shift-pagedown": "pane::SwapItemRight" // default + "ctrl-,": "zed::OpenSettings", + "ctrl-;": "zed::OpenKeymap" + } + }, + { + "context": "FileManager", + "bindings": { + "ctrl-e": "project_panel::ToggleFocus", + "escape": "project_panel::ToggleFocus", + // "ctrl-e": "pane::RevealInProjectPanel", + "ctrl-p": "file_finder::Toggle" + } + }, + { + "context": "!Editor", + "bindings": { + "ctrl-e": "project_panel::ToggleFocus", + "esc": "project_panel::ToggleFocus" + } + }, + { + "context": "Editor", + "bindings": { + "alt-f3": "editor::SelectAllMatches", // Select all occurrences of current word + "alt-d": ["editor::SelectNext", { "replace_newest": false }], + "ctrl-d": "editor::DuplicateLineDown", + "ctrl-shift-d": "editor::DeleteLine", + "ctrl-j": "editor::JoinLines", + "ctrl-shift-j": null, // "editor::JoinLines" + "ctrl-l": "editor::Fold", + "ctrl-;": "editor::UnfoldLines", // ctrl-ΓΈ + + "f5": "editor::SortLinesCaseSensitive", + + "ctrl-shift-e": null, // "project_panel::RevealInFileManager" + "ctrl-e": "project_panel::RevealInFileManager", + + "ctrl-shift-l": "language_selector::Toggle", + + "alt-enter": "editor::FindAllReferences", + "ctrl-enter": "editor::GoToDefinition", // TODO: open-url, and somehow disable FindAllReferences fallback behavior here + // "ctrl-enter": ["editor::GoToDefinition", "editor::OpenUrl"], + "ctrl-q": null, // "zed::Quit", + + // i'm confused + "ctrl-shift-c": "editor::Copy", + "ctrl-shift-v": "editor::Paste", + + "ctrl-k ctrl-u": "editor::ConvertToUpperCase", + "ctrl-k ctrl-l": "editor::ConvertToLowerCase", + + // "ctrl-k ctrl-1": ["editor::FoldAtLevel", 0], + "ctrl-k ctrl-0": "editor::UnfoldAll", + + "ctrl-'": ["editor::ToggleComments", { "advance_downwards": false }], + + "ctrl-r": "editor::ToggleLineNumbers", + + "alt-pageup": ["workspace::ActivatePaneInDirection", "Left"], + "alt-pagedown": ["workspace::ActivatePaneInDirection", "Right"] + } + }, + { + "context": "Editor && mode == full", + "bindings": { + "ctrl-f": ["buffer_search::Deploy", { "replace_enabled": true }] + } + }, + { + "context": "BufferSearchBar", + "bindings": { + // "enter": "buffer_search::FocusEditor", + "ctrl-f": "buffer_search::Dismiss" + } + }, + { + "context": "Terminal", + "bindings": { + "ctrl-n": ["terminal::SendKeystroke", "ctrl-n"] + } + } +] diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..e80061c --- /dev/null +++ b/settings.json @@ -0,0 +1,77 @@ +// Zed settings +// +// For information on how to configure Zed, see the Zed +// documentation: https://zed.dev/docs/configuring-zed +// +// To see all of Zed's default settings without changing your +// custom settings, run `zed: open default settings` from the +// command palette +{ + "ssh_connections": [ + { + "host": "rocm.pbsds.net", + "projects": [ + { + "paths": ["~/ntnu/ifield"] + } + ] + } + ], + "telemetry": { + "metrics": false + }, + "ui_font_size": 16, + "buffer_font_size": 17.0, + "theme": "Railscast", + "use_autoclose": false, + "ui_font_features": { + "calt": true // disable ligatures + }, + "buffer_font_features": { + "calt": true // disable ligatures + // "font_family": "Cousine" + }, + "seed_search_query_from_cursor": "selection", + "vertical_scroll_margin": 5, + "wrap_guides": [80], + "tabs": { + "file_icons": true + }, + "indent_guides": { + // "coloring": "indent_aware" + // "coloring": "fixed" + "coloring": "disabled" + }, + "project_panel": { + "indent_size": 10, + "indent_guides": { + "show": "never" + } + }, + "auto_install_extensions": { + // "railcast": true, + "cython": true, + "docker-compose": true, + "dockerfile": true, + "glsl": true, + "graphviz": true, + "haskell": true, + "html": true, + "ini": true, + "java": true, + "jinja2": true, + "just": true, + "kotlin": true, + "latex": true, + "lua": true, + "make": true, + "neocmake": true, + "nix": true, + "pylsp": true, + "scala": true, + "toml": true, + "typst": true, + "verilog": true, + "vhdl": true + } +} diff --git a/snippets/jinja2.json b/snippets/jinja2.json new file mode 100644 index 0000000..09f9fb9 --- /dev/null +++ b/snippets/jinja2.json @@ -0,0 +1,57 @@ +{ + "Comment": { + "prefix": "comment", + "body": "{# $0 #}", + "description": "Jinja snippet 'Comment'" + }, + "Complete Comment": { + "prefix": "{#", + "body": "{# $0 #}", + "description": "Jinja snippet 'Complete'" + }, + "Do": { + "prefix": "do", + "body": "{% do ${1:expr} %}{# requires jinja2.ext.do #}", + "description": "Jinja snippet 'Do'" + }, + "Continue": { + "prefix": "continue", + "body": "{% continue %}{# requires jinja2.ext.loopcontrols #}", + "description": "Jinja snippet 'Continue'" + }, + "Break": { + "prefix": "break", + "body": "{% break %}{# requires jinja2.ext.loopcontrols #}", + "description": "Jinja snippet 'Break'" + }, + "Autoescape": { + "prefix": "autoescape", + "body": "{% autoescape ${1:false} %}\\n$2\\n{% endautoescape %}$0", + "description": "Jinja snippet 'Autoescape'" + }, + "Todo": { + "prefix": "todo", + "body": "{# TODO: ${1:message} #}", + "description": "Jinja snippet 'Todo'" + }, + "Block": { + "prefix": "block", + "body": "{% block ${1:name} %}\\n\\t$2\\n{% endblock %}{# ${1:name} #}", + "description": "Jinja snippet 'Block'" + }, + "Set": { + "prefix": "set", + "body": "{% set ${1:var} = ${2:expr} %}", + "description": "Jinja snippet 'Set'" + }, + "if": { + "prefix": "if", + "body": "{% if ${1:expr} %}\n{% endif %}", + "description": "Jinja snippet 'If'" + }, + "if": { + "prefix": "for", + "body": "{% for ${1:expr} in ${2:expr} %}\n{% endfor %}", + "description": "Jinja snippet 'If'" + } +}