;; Add git signs to source files. (local mappings [[:n :mq "Gitsigns diffthis HEAD" {:desc "Gitsigns diff"}] [:n :gR "lua require 'gitsigns'.reset_buffer()" {:desc "Reset Buffer"}] [:n :gd "Gitsigns diffthis HEAD" {:desc :Diff}] [:n :gj "lua require 'gitsigns'.next_hunk()" {:desc "Next Hunk"}] [:n :gk "lua require 'gitsigns'.prev_hunk()" {:desc "Prev Hunk"}] [:n :gl "lua require 'gitsigns'.blame_line()" {:desc :Blame}] [:n :gp "lua require 'gitsigns'.preview_hunk()" {:desc "Preview Hunk"}] [:n :gr "lua require 'gitsigns'.reset_hunk()" {:desc "Reset Hunk"}] [:n :gs "lua require 'gitsigns'.stage_hunk()" {:desc "Stage Hunk"}] [:n :gu "lua require 'gitsigns'.undo_stage_hunk()" {:desc "Undo Stage Hunk"}] [[:o :x] :gn ":Gitsigns select_hunk" {:desc "GitSigns Select Hunk"}]]) (fn on-attach [bufnr] (each [_ mapping (ipairs mappings)] (match mapping [mode key cmd desc] (vim.keymap.set mode key cmd (vim.tbl_extend :force {:buffer bufnr} desc))))) (local signs {:add {:hl :GitSignsAdd :text "|" :numhl :GitSignsAddNr :linehl :GitSignsAddLn} :change {:hl :GitSignsChange :text "|" :numhl :GitSignsChangeNr :linehl :GitSignsChangeLn} :delete {:hl :GitSignsDelete :text "_" :numhl :GitSignsDeleteNr :linehl :GitSignsDeleteLn} :topdelete {:hl :GitSignsDelete :text "‾" :numhl :GitSignsDeleteNr :linehl :GitSignsDeleteLn} :changedelete {:hl :GitSignsChange :text "~" :numhl :GitSignsChangeNr :linehl :GitSignsChangeLn}}) (local opts {: signs :signcolumn true :numhl false :linehl false :word_diff false :watch_gitdir {:interval 1000 :follow_files true} :attach_to_untracked true :current_line_blame false :current_line_blame_opts {:virt_text true :virt_text_pos :eol :delay 1000 :ignore_whitespace false} :current_line_blame_formatter_opts {:relative_time false} :sign_priority 6 :update_debounce 100 :status_formatter nil :max_file_length 40000 :preview_config {:border :single :style :minimal :relative :cursor :row 0 :col 1} :yadm {:enable false} :on_attach (fn [bufnr] (on-attach bufnr))}) {1 :lewis6991/gitsigns.nvim :event [:BufReadPost :BufNewFile] : opts}