Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snippets: Pydoc comment snippets not appearing #674

Open
1 task done
skttlock opened this issue Feb 28, 2025 · 1 comment
Open
1 task done

Snippets: Pydoc comment snippets not appearing #674

skttlock opened this issue Feb 28, 2025 · 1 comment
Labels
bug Something isn't working

Comments

@skttlock
Copy link

⚠️ Please verify that this bug has NOT been reported before.

  • I checked all existing issues and didn't find a similar issue

Description

Hello and thank you to all contributors for your work.
Inside of a Python file I am unable to see Pydoc snippets.
Pydoc snippets are provided in friendly-snippets. This remains true for the pinned version of friendly-snippets.

Relevant file: pydoc.json

Lmk if I can help or provide more info.

Config in Reproduction steps.

Log Output notes:

  • Oof. I don't know. Let me check NVF docs... (excuse my stream of conciousness)
  • Looking at nvf-print-conf... I don't see anything super relevant, regardless, I'll put that as the Log output.

👟 Reproduction steps

relevant config
I am running NixOS + Home-manager. NVF is installed via flake. Note that the sourcePlugins definition did not appear to affect this bug; bug appears with and without it. (Attempting to get Intellisense-esc member lists- unrelated lol (I assume!))

      autocomplete = {
        nvim-cmp = {
          enable = true;
          mappings = {
            close = "<Left>";
            confirm = "<Right>";
            next = "<Down>";
            previous = "<Up>";
            # need scroll docs mappings
          };
          sourcePlugins = [
            "cmp-luasnip"
            "nvim-lspconfig"
            "cmp-nvim-lsp"
            "cmp-buffer"
            "cmp-path"
            "nvim-cmp"
          ];
        };
      };
      snippets.luasnip.enable = true;
nvim test.py

Attempt to use nvm-cmp + LuaSnip + friendly-snippets code comment snippets.

👀 Expected behavior

Utilizing the prefixes defined in the aforementioned pydoc.json file; the completion engine should prompt Pydoc-style comments, again defined in the prior file.

😓 Actual Behavior

The prefixes do not prompt the relevant snippets.

💻 Metadata

  • system: "x86_64-linux" - host os: Linux 6.12.10, NixOS, 25.05 (Warbler), 25.05.20250121.9e4d519 - multi-user?: yes - sandbox: yes - version: nix-env (Nix) 2.24.11 - channels(root): "home-manager, nixos-24.11" - nixpkgs: /nix/store/irknf7niks2djxz4csh7sr44wwrs082y-source

📝 Relevant log output

- SECTION: globalsScript
vim.g.editorconfig = true
vim.g.foldlevel = 99
vim.g.mapleader = " "
vim.g.maplocalleader = ","


-- SECTION: basic


vim.cmd("syntax on")




vim.o.smartcase = false
vim.o.ignorecase = true







-- SECTION: optionsScript
vim.o.autoindent = true
vim.o.backup = false
vim.o.cmdheight = 1
vim.o.cursorlineopt = "line"
vim.o.encoding = "utf-8"
vim.o.errorbells = false
vim.o.expandtab = true
vim.o.hidden = true
vim.o.mouse = ""
vim.o.number = true
vim.o.relativenumber = true
vim.o.shiftwidth = 2
vim.o.signcolumn = "yes"
vim.o.softtabstop = -1
vim.o.spell = true
vim.o.spelllang = "en"
vim.o.splitbelow = true
vim.o.splitright = true
vim.o.swapfile = false
vim.o.tabstop = 2
vim.o.termguicolors = true
vim.o.tm = 500
vim.o.undodir = vim.fn.stdpath('state') .. '/undo'
vim.o.undofile = true
vim.o.updatetime = 300
vim.o.visualbell = false
vim.o.wrap = true
vim.o.writebackup = false


-- SECTION: lazyConfigs
require('lz.n').load({{"cheatsheet-nvim",["after"] = function()

  require("cheatsheet").setup({})

end
,["before"] = function()
  require('lz.n').trigger_load('telescope')
end
,["cmd"] = {"Cheatsheet","CheatsheetEdit"},["lazy"] = false},{"cmp-buffer",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/cmp-buffer')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"cmp-luasnip",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/cmp-luasnip')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"cmp-nvim-lsp",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/cmp-nvim-lsp')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"cmp-path",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/cmp-path')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"cmp-treesitter",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/cmp-treesitter')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"comment-nvim",["after"] = function()

  require("Comment").setup({["mappings"] = {["basic"] = false,["extra"] = false}})

end
,["keys"] = {{"gc","<Plug>(comment_toggle_linewise)",["desc"] = "Toggle line comment",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gb","<Plug>(comment_toggle_blockwise)",["desc"] = "Toggle block comment",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gcc",function()
  return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_linewise_current)'
          or '<Plug>(comment_toggle_linewise_count)'
end
,["desc"] = "Toggle current line comment",["expr"] = true,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gbc",function()
  return vim.api.nvim_get_vvar('count') == 0 and '<Plug>(comment_toggle_blockwise_current)'
          or '<Plug>(comment_toggle_blockwise_count)'
end
,["desc"] = "Toggle current block comment",["expr"] = true,["mode"] = {"n"},["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gc","<Plug>(comment_toggle_linewise_visual)",["desc"] = "Toggle selected comment",["expr"] = false,["mode"] = "x",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gb","<Plug>(comment_toggle_blockwise_visual)",["desc"] = "Toggle selected block",["expr"] = false,["mode"] = "x",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false}},["lazy"] = false},{"fidget-nvim",["after"] = function()

  require("fidget").setup({["integration"] = {["nvim-tree"] = {["enable"] = false},["xcodebuild-nvim"] = {["enable"] = true}},["logger"] = {["float_precision"] = 0.010000,["level"] = vim.log.levels.WARN,["max_size"] = 10000,["path"] = string.format("%s/fidget.nvim.log", vim.fn.stdpath("cache"))
},["notification"] = {["configs"] = {["default"] = require('fidget.notification').default_config},["filter"] = vim.log.levels.INFO,["history_size"] = 128,["override_vim_notify"] = false,["poll_rate"] = 10,["redirect"] = function(msg, level, opts)
  if opts and opts.on_open then
    return require("fidget.integration.nvim-notify").delegate(msg, level, opts)
  end
end
,["view"] = {["group_separator"] = "---",["group_separator_hl"] = "Comment",["icon_separator"] = " ",["render_message"] = function(msg, cnt)
  return cnt == 1 and msg or string.format("(%dx) %s", cnt, msg)
end
,["stack_upwards"] = true},["window"] = {["align"] = "bottom",["border"] = "none",["max_height"] = 0,["max_width"] = 0,["normal_hl"] = "Comment",["relative"] = "editor",["winblend"] = 100,["x_padding"] = 1,["y_padding"] = 0,["zindex"] = 45}},["progress"] = {["display"] = {["done_icon"] = "",["done_style"] = "Constant",["done_ttl"] = 3,["format_annote"] = function(msg) return msg.title end
,["format_group_name"] = function(group) return tostring(group) end
,["format_message"] = require("fidget.progress.display").default_format_message
,["group_style"] = "Title",["icon_style"] = "Question",["overrides"] = {},["priority"] = 30,["progress_icon"] = {["pattern"] = "dots",["period"] = 1},["progress_style"] = "WarningMsg",["progress_ttl"] = 99999,["render_limit"] = 16,["skip_history"] = true},["ignore"] = {},["ignore_done_already"] = false,["ignore_empty_message"] = false,["lsp"] = {["log_handler"] = false,["progress_ringbuf_size"] = 100},["notification_group"] = function(msg)
  return msg.lsp_client.name
end
,["poll_rate"] = 0,["suppress_on_insert"] = false}})

end
,["event"] = "LspAttach",["lazy"] = false},{"luasnip",["after"] = function()

  require("luasnip").setup({["enable_autosnippets"] = false})
  require('luasnip.loaders.from_vscode').lazy_load()
end
,["lazy"] = true},{"nvim-cmp",["after"] = function()


  local luasnip = require('luasnip')
local cmp = require("cmp")

local kinds = require("cmp.types").lsp.CompletionItemKind
local deprio = function(kind)
  return function(e1, e2)
    if e1:get_kind() == kind then
      return false
    end
    if e2:get_kind() == kind then
      return true
    end
    return nil
  end
end

cmp.setup({["completion"] = {["completeopt"] = "menu,menuone,noinsert"},["formatting"] = {["format"] = function(entry, vim_item)
  vim_item.menu = ({["buffer"] = "[Buffer]",["luasnip"] = "[LuaSnip]",["nvim_lsp"] = "[LSP]",["path"] = "[Path]",["treesitter"] = "[Treesitter]"})[entry.source.name]
  return vim_item
end
},["mapping"] = {["<C-Space>"] = cmp.mapping.complete(),["<C-d>"] = cmp.mapping.scroll_docs(-4),["<C-f>"] = cmp.mapping.scroll_docs(4),["<Down>"] = cmp.mapping(function(fallback)
  local has_words_before = function()
    local line, col = unpack(vim.api.nvim_win_get_cursor(0))
    return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
  end

  if cmp.visible() then
    cmp.select_next_item()
    elseif luasnip.locally_jumpable(1) then
  luasnip.jump(1)

  elseif has_words_before() then
    cmp.complete()
  else
    fallback()
  end
end)
,["<Left>"] = cmp.mapping.abort(),["<Right>"] = cmp.mapping.confirm({ select = true }),["<Up>"] = cmp.mapping(function(fallback)
  if cmp.visible() then
    cmp.select_prev_item()
    elseif luasnip.locally_jumpable(-1) then
  luasnip.jump(-1)

  else
    fallback()
  end
end)
},["sorting"] = {["comparators"] = {deprio(kinds.Text),deprio(kinds.Snippet),cmp.config.compare.offset,cmp.config.compare.exact,cmp.config.compare.score,cmp.config.compare.kind,cmp.config.compare.length,cmp.config.compare.sort_text}},["sources"] = {{["name"] = "buffer"},{["name"] = "luasnip"},{["name"] = "nvim-cmp"},{["name"] = "nvim_lsp"},{["name"] = "path"},{["name"] = "treesitter"}}})

require('lz.n').trigger_load("cmp-luasnip")
require('lz.n').trigger_load("cmp-buffer")
require('lz.n').trigger_load("cmp-path")
require('lz.n').trigger_load("cmp-treesitter")
require('lz.n').trigger_load("cmp-nvim-lsp")
require('lz.n').trigger_load("cmp-luasnip")
require('lz.n').trigger_load("nvim-lspconfig")
require('lz.n').trigger_load("cmp-nvim-lsp")
require('lz.n').trigger_load("cmp-buffer")
require('lz.n').trigger_load("cmp-path")
require('lz.n').trigger_load("nvim-cmp")

local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/nvim-cmp')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["event"] = {"InsertEnter","CmdlineEnter"},["lazy"] = true},{"nvim-dap-ui",["after"] = function()

  require("dapui").setup({})

end
,["keys"] = {{"<leader>du",function() require('dapui').toggle() end,["desc"] = "Toggle DAP-UI",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false}},["lazy"] = false},{"nvim-lspconfig",["after"] = function()


  local path = vim.fn.globpath(vim.o.packpath, 'pack/*/opt/nvim-lspconfig')
require("rtp_nvim").source_after_plugin_dir(path)

end
,["lazy"] = true},{"nvim-surround",["after"] = function()

  require("nvim-surround").setup({["keymaps"] = {["change"] = "gzr",["change_line"] = "gZR",["delete"] = "gzd",["insert"] = "<C-g>z",["insert_line"] = "<C-g>Z",["normal"] = "gz",["normal_cur"] = "gZ",["normal_cur_line"] = "gZZ",["normal_line"] = "gzz",["visual"] = "gz",["visual_line"] = "gZ"}})

end
,["keys"] = {{"<C-g>z",["expr"] = false,["mode"] = "i",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<C-g>Z",["expr"] = false,["mode"] = "i",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gz",["expr"] = false,["mode"] = "x",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gZ",["expr"] = false,["mode"] = "x",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gz",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gZ",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gzz",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gZZ",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gzd",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gzr",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"gZR",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false}},["lazy"] = false},{"nvim-ufo",["after"] = function()

  require("ufo").setup({})

end
,["lazy"] = false},{"telescope",["after"] = function()

  require("telescope").setup({["defaults"] = {["color_devicons"] = true,["entry_prefix"] = "  ",["file_ignore_patterns"] = {"node_modules",".git/","dist/","build/","target/","result/"},["initial_mode"] = "insert",["layout_config"] = {["height"] = 0.800000,["horizontal"] = {["preview_width"] = 0.550000,["prompt_position"] = "top",["results_width"] = 0.800000},["preview_cutoff"] = 120,["vertical"] = {["mirror"] = false},["width"] = 0.800000},["layout_strategy"] = "horizontal",["path_display"] = {"absolute"},["pickers"] = {["find_command"] = {"/nix/store/4p0c62vy7jw06ygmffhjhgwn11g0bila-fd-10.2.0/bin/fd"}},["prompt_prefix"] = "",["selection_caret"] = "  ",["selection_strategy"] = "reset",["set_env"] = {["COLORTERM"] = "truecolor"},["sorting_strategy"] = "ascending",["vimgrep_arguments"] = {"/nix/store/d7i7ccjxmlzh73l2s458s3c9kwdj2s3b-ripgrep-14.1.1/bin/rg","--color=never","--no-heading","--with-filename","--line-number","--column","--smart-case","--hidden","--no-ignore"},["winblend"] = 0}})
  local telescope = require("telescope")

telescope.load_extension('notify')


end
,["before"] = function()
  vim.g.loaded_telescope = nil

end
,["cmd"] = {"Telescope"},["keys"] = {{"<leader>ff","<cmd>Telescope find_files<CR>",["desc"] = "Find files [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fg","<cmd>Telescope live_grep<CR>",["desc"] = "Live grep [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fb","<cmd>Telescope buffers<CR>",["desc"] = "Buffers [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fh","<cmd>Telescope help_tags<CR>",["desc"] = "Help tags [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>ft","<cmd>Telescope<CR>",["desc"] = "Open [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fr","<cmd>Telescope resume<CR>",["desc"] = "Resume (previous search) [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fvcw","<cmd>Telescope git_commits<CR>",["desc"] = "Git commits [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fvcb","<cmd>Telescope git_bcommits<CR>",["desc"] = "Git buffer commits [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fvb","<cmd>Telescope git_branches<CR>",["desc"] = "Git branches [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fvs","<cmd>Telescope git_status<CR>",["desc"] = "Git status [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fvx","<cmd>Telescope git_stash<CR>",["desc"] = "Git stash [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>flsb","<cmd>Telescope lsp_document_symbols<CR>",["desc"] = "LSP Document Symbols [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>flsw","<cmd>Telescope lsp_workspace_symbols<CR>",["desc"] = "LSP Workspace Symbols [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>flr","<cmd>Telescope lsp_references<CR>",["desc"] = "LSP References [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fli","<cmd>Telescope lsp_implementations<CR>",["desc"] = "LSP Implementations [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>flD","<cmd>Telescope lsp_definitions<CR>",["desc"] = "LSP Definitions [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>flt","<cmd>Telescope lsp_type_definitions<CR>",["desc"] = "LSP Type Definitions [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fld","<cmd>Telescope diagnostics<CR>",["desc"] = "Diagnostics [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false},{"<leader>fs","<cmd>Telescope treesitter<CR>",["desc"] = "Treesitter [Telescope]",["expr"] = false,["mode"] = "n",["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false}},["lazy"] = false}})
require('lzn-auto-require').enable()


-- SECTION: pluginConfigs
-- SECTION: autopairs
require('nvim-autopairs').setup({})


-- SECTION: null_ls-setup
local null_ls = require("null-ls")
local null_helpers = require("null-ls.helpers")
local null_methods = require("null-ls.methods")
local ls_sources = {}


-- SECTION: bash-diagnostics-shellcheck
table.insert(
  ls_sources,
  null_ls.builtins.diagnostics.shellcheck.with({
    command = "/nix/store/d578igb56crc28zrx914mqxbc88djhk5-shellcheck-0.10.0-bin/bin/shellcheck",
    diagnostics_format = "#{m} [#{c}]"
  })
)


-- SECTION: bash-format
table.insert(
  ls_sources,
  null_ls.builtins.formatting.shfmt.with({
    command = "/nix/store/ca6k9rhbch5z7axmxrc6zsz0lm65cjwq-shfmt-3.10.0/bin/shfmt",
  })
)


-- SECTION: lsp-setup
vim.g.formatsave = true;

local attach_keymaps = function(client, bufnr)
  vim.keymap.set('n', '<leader>lgD', vim.lsp.buf.declaration, {buffer=bufnr, noremap=true, silent=true, desc='Go to declaration'})
  vim.keymap.set('n', '<leader>lgd', vim.lsp.buf.definition, {buffer=bufnr, noremap=true, silent=true, desc='Go to definition'})
  vim.keymap.set('n', '<leader>lgt', vim.lsp.buf.type_definition, {buffer=bufnr, noremap=true, silent=true, desc='Go to type'})
  vim.keymap.set('n', '<leader>lgi', vim.lsp.buf.implementation, {buffer=bufnr, noremap=true, silent=true, desc='List implementations'})
  vim.keymap.set('n', '<leader>lgr', vim.lsp.buf.references, {buffer=bufnr, noremap=true, silent=true, desc='List references'})
  vim.keymap.set('n', '<leader>lgn', vim.diagnostic.goto_next, {buffer=bufnr, noremap=true, silent=true, desc='Go to next diagnostic'})
  vim.keymap.set('n', '<leader>lgp', vim.diagnostic.goto_prev, {buffer=bufnr, noremap=true, silent=true, desc='Go to previous diagnostic'})
  vim.keymap.set('n', '<leader>le', vim.diagnostic.open_float, {buffer=bufnr, noremap=true, silent=true, desc='Open diagnostic float'})
  vim.keymap.set('n', '<leader>lH', vim.lsp.buf.document_highlight, {buffer=bufnr, noremap=true, silent=true, desc='Document highlight'})
  vim.keymap.set('n', '<leader>lS', vim.lsp.buf.document_symbol, {buffer=bufnr, noremap=true, silent=true, desc='List document symbols'})
  vim.keymap.set('n', '<leader>lwa', vim.lsp.buf.add_workspace_folder, {buffer=bufnr, noremap=true, silent=true, desc='Add workspace folder'})
  vim.keymap.set('n', '<leader>lwr', vim.lsp.buf.remove_workspace_folder, {buffer=bufnr, noremap=true, silent=true, desc='Remove workspace folder'})
  vim.keymap.set('n', '<leader>lwl', function() vim.notify(vim.inspect(vim.lsp.buf.list_workspace_folders())) end, {buffer=bufnr, noremap=true, silent=true, desc='List workspace folders'})
  vim.keymap.set('n', '<leader>lws', vim.lsp.buf.workspace_symbol, {buffer=bufnr, noremap=true, silent=true, desc='List workspace symbols'})
  vim.keymap.set('n', '<leader>lh', vim.lsp.buf.hover, {buffer=bufnr, noremap=true, silent=true, desc='Trigger hover'})
  vim.keymap.set('n', '<leader>ls', vim.lsp.buf.signature_help, {buffer=bufnr, noremap=true, silent=true, desc='Signature help'})
  vim.keymap.set('n', '<leader>ln', vim.lsp.buf.rename, {buffer=bufnr, noremap=true, silent=true, desc='Rename symbol'})
  vim.keymap.set('n', '<leader>la', vim.lsp.buf.code_action, {buffer=bufnr, noremap=true, silent=true, desc='Code action'})
  vim.keymap.set('n', '<leader>lf', vim.lsp.buf.format, {buffer=bufnr, noremap=true, silent=true, desc='Format'})
  vim.keymap.set('n', '<leader>ltf', function() vim.b.disableFormatSave = not vim.b.disableFormatSave end, {buffer=bufnr, noremap=true, silent=true, desc='Toggle format on save'})
end

-- Enable formatting
local augroup = vim.api.nvim_create_augroup("LspFormatting", {})

format_callback = function(client, bufnr)
  if vim.g.formatsave then
    vim.api.nvim_clear_autocmds({ group = augroup, buffer = bufnr })
    vim.api.nvim_create_autocmd("BufWritePre", {
      group = augroup,
      buffer = bufnr,
      callback = function()
        if vim.b.disableFormatSave then
  return
end

local function is_null_ls_formatting_enabled(bufnr)
    local file_type = vim.api.nvim_buf_get_option(bufnr, "filetype")
    local generators = require("null-ls.generators").get_available(
        file_type,
        require("null-ls.methods").internal.FORMATTING
    )
    return #generators > 0
end

if is_null_ls_formatting_enabled(bufnr) then
   vim.lsp.buf.format({
      bufnr = bufnr,
      filter = function(client)
        return client.name == "null-ls"
      end
    })
else
    vim.lsp.buf.format({
      bufnr = bufnr,
    })
end

      end,
    })
  end
end


default_on_attach = function(client, bufnr)
  attach_keymaps(client, bufnr)
  format_callback(client, bufnr)

end

local capabilities = vim.lsp.protocol.make_client_capabilities()
-- HACK: copied from cmp-nvim-lsp. If we ever lazy load lspconfig we
-- should re-evaluate whether we can just use `default_capabilities`
capabilities = {
  textDocument = {
    completion = {
      dynamicRegistration = false,
      completionItem = {
        snippetSupport = true,
        commitCharactersSupport = true,
        deprecatedSupport = true,
        preselectSupport = true,
        tagSupport = {
          valueSet = {
            1, -- Deprecated
          }
        },
        insertReplaceSupport = true,
        resolveSupport = {
          properties = {
            "documentation",
            "detail",
            "additionalTextEdits",
            "sortText",
            "filterText",
            "insertText",
            "textEdit",
            "insertTextFormat",
            "insertTextMode",
          },
        },
        insertTextModeSupport = {
          valueSet = {
            1, -- asIs
            2, -- adjustIndentation
          }
        },
        labelDetailsSupport = true,
      },
      contextSupport = true,
      insertTextMode = 1,
      completionList = {
        itemDefaults = {
          'commitCharacters',
          'editRange',
          'insertTextFormat',
          'insertTextMode',
          'data',
        }
      }
    },
  },
}



-- SECTION: lspconfig
local lspconfig = require('lspconfig')




-- SECTION: bash-lsp
lspconfig.bashls.setup{
  capabilities = capabilities;
  on_attach = default_on_attach;
  cmd = {"/nix/store/zsdw822sr5ip66hv8p2hzvd4yxc102kb-bash-language-server-5.4.0/bin/bash-language-server",  "start"};
}


-- SECTION: css-format
table.insert(
  ls_sources,
  null_ls.builtins.formatting.prettier.with({
    command = "/nix/store/rrmdwy79qyc61lxmrggvrpmdmrq3zym7-prettier-3.3.3/bin/prettier",
  })
)


-- SECTION: css-lsp
-- enable (broadcasting) snippet capability for completion
-- see <https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#cssls>
local css_capabilities = vim.lsp.protocol.make_client_capabilities()
css_capabilities.textDocument.completion.completionItem.snippetSupport = true

-- cssls setup
lspconfig.cssls.setup {
  capabilities = css_capabilities;
  on_attach = default_on_attach;
  cmd = {"/nix/store/95xxifaf7h3sql6vwrsa70bx40rpfq0r-vscode-langservers-extracted-4.10.0/bin/vscode-css-language-server", "--stdio"}
}


-- SECTION: gitsigns
require('gitsigns').setup({})


-- SECTION: highlight-undo
require("highlight-undo").setup({["duration"] = 500})


-- SECTION: html-autotag
require('nvim-ts-autotag').setup()


-- SECTION: indent-blankline
require("ibl").setup({["debounce"] = 200,["indent"] = {["char"] = "",["priority"] = 1,["repeat_linebreak"] = true,["smart_indent_cap"] = true},["scope"] = {["char"] = "",["enabled"] = true,["exclude"] = {["language"] = {},["node_type"] = {["*"] = {"source_file","program"},["lua"] = {"chunk"},["python"] = {"module"}}},["include"] = {["node_type"] = {}},["injected_languages"] = true,["priority"] = 1024,["show_end"] = false,["show_exact_scope"] = false,["show_start"] = false},["viewport_buffer"] = {["max"] = 500,["min"] = 30},["whitespace"] = {["remove_blankline_trail"] = true}})


-- SECTION: lualine
local lualine = require('lualine')
lualine.setup {["inactive_sections"] = {["lualine_a"] = {},["lualine_b"] = {},["lualine_c"] = {'filename'},["lualine_x"] = {'location'},["lualine_y"] = {},["lualine_z"] = {}},["options"] = {["always_divide_middle"] = true,["component_separators"] = {"",""},["globalstatus"] = true,["icons_enabled"] = true,["refresh"] = {["statusline"] = 10,["tabline"] = 10,["winbar"] = 10},["section_separators"] = {"",""},["theme"] = "auto"},["sections"] = {["lualine_a"] = {{
  "mode",
  icons_enabled = true,
  separator = {
    left = '',
    right = ''
  },
}
,{
  "",
  draw_empty = true,
  separator = { left = '', right = '' }
}
},["lualine_b"] = {{
  "filetype",
  colored = true,
  icon_only = true,
  icon = { align = 'left' }
}
,{
  "filename",
  symbols = {modified = '', readonly = ''},
  separator = {right = ''}
}
,{
  "",
  draw_empty = true,
  separator = { left = '', right = '' }
}
},["lualine_c"] = {{
  "diff",
  colored = false,
  diff_color = {
    -- Same color values as the general color option can be used here.
    added    = 'DiffAdd',    -- Changes the diff's added color
    modified = 'DiffChange', -- Changes the diff's modified color
    removed  = 'DiffDelete', -- Changes the diff's removed color you
  },
  symbols = {added = '+', modified = '~', removed = '-'}, -- Changes the diff symbols
  separator = {right = ''}
}
},["lualine_x"] = {{
  -- Lsp server name
  function()
    local buf_ft = vim.api.nvim_get_option_value('filetype', {})

    -- List of buffer types to exclude
    local excluded_buf_ft = {"toggleterm", "NvimTree", "neo-tree", "TelescopePrompt"}

    -- Check if the current buffer type is in the excluded list
    for _, excluded_type in ipairs(excluded_buf_ft) do
      if buf_ft == excluded_type then
        return ""
      end
    end

    -- Get the name of the LSP server active in the current buffer
    local clients = vim.lsp.get_active_clients()
    local msg = 'No Active Lsp'

    -- if no lsp client is attached then return the msg
    if next(clients) == nil then
      return msg
    end

    for _, client in ipairs(clients) do
      local filetypes = client.config.filetypes
      if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
        return client.name
      end
    end

    return msg
  end,
  icon = '',
  separator = {left = ''},
}
,{
  "diagnostics",
  sources = {'nvim_lsp', 'nvim_diagnostic', 'nvim_diagnostic', 'vim_lsp', 'coc'},
  symbols = {error = '󰅙  ', warn = '', info = '', hint = '󰌵 '},
  colored = true,
  update_in_insert = false,
  always_visible = false,
  diagnostics_color = {
    color_error = { fg = 'red' },
    color_warn = { fg = 'yellow' },
    color_info = { fg = 'cyan' },
  },
}
},["lualine_y"] = {{
  "",
  draw_empty = true,
  separator = { left = '', right = '' }
}
,{
  'searchcount',
  maxcount = 999,
  timeout = 120,
  separator = {left = ''}
}
,{
  "branch",
  icon = ' •',
  separator = {left = ''}
}
},["lualine_z"] = {{
  "",
  draw_empty = true,
  separator = { left = '', right = '' }
}
,{
  "progress",
  separator = {left = ''}
}
,{"location"}
,{
  "fileformat",
  color = {fg='black'},
  symbols = {
    unix = '', -- e712
    dos = '',  -- e70f
    mac = '',  -- e711
  }
}
}}}


-- SECTION: markdown-format
table.insert(
  ls_sources,
  null_ls.builtins.formatting.deno_fmt.with({
    filetypes = { "markdown" },
    command = "/nix/store/g4iiq2i7ygi660whra4rx4h9g57xmm5c-deno-2.1.6/bin/deno",
  })
)


-- SECTION: markdown-lsp
lspconfig.marksman.setup{
  capabilities = capabilities;
  on_attach = default_on_attach;
  cmd = {"/nix/store/az468gcl03rcaprlxd4hb3qyn7g1x79v-marksman-2024-12-18/bin/marksman", "server"},
}


-- SECTION: nix-diagnostics-deadnix
table.insert(
  ls_sources,
  null_ls.builtins.diagnostics.deadnix.with({
    command = "/nix/store/bvfz5pcvp6cj70mpnvx749sbx3ah62q3-deadnix-1.2.1/bin/deadnix",
  })
)


-- SECTION: nix-diagnostics-statix
table.insert(
  ls_sources,
  null_ls.builtins.diagnostics.statix.with({
    command = "/nix/store/vydc7hvwi8s09wrjqvl2mnxwa3fs4qpl-statix-0.5.8/bin/statix",
  })
)


-- SECTION: nix-lsp
lspconfig.nil_ls.setup{
  capabilities = capabilities,
on_attach = default_on_attach,
  cmd = {"/nix/store/k81ci2k2a0jxg8y3d2q2kxd5mjvbj94l-nil-2024-08-06/bin/nil"},
settings = {
  ["nil"] = {
formatting = {
  command = {"/nix/store/9gzgviip82ddfvv9dhs1k6am1h45b540-alejandra-3.1.0/bin/alejandra", "--quiet"},
},


  },
},

}


-- SECTION: nu-lsp
lspconfig.nushell.setup{
  capabilities = capabilities,
  on_attach = default_on_attach,
  cmd = {"/nix/store/pd8rdrp5m1skfar69s5rsmb7laf3di96-nushell-0.101.0/bin/nu", "--no-config-file", "--lsp"}
}


-- SECTION: python-format
table.insert(
  ls_sources,
  null_ls.builtins.formatting.black.with({
    command = "/nix/store/z11xydlv01159zbkkpkf01a7g81r7007-python3.12-black-24.8.0/bin/black",
  })
)


-- SECTION: ts-diagnostics-eslint_d
table.insert(
  ls_sources,
  null_ls.builtins.diagnostics.eslint_d.with({
    command = "/nix/store/5s5wc2vf4mhmsavgdxmvqadk4qcisr59-eslint_d-14.3.0/bin/eslint_d",
  })
)


-- SECTION: ts-format
table.insert(
  ls_sources,
  null_ls.builtins.formatting.prettier.with({
    command = "/nix/store/rrmdwy79qyc61lxmrggvrpmdmrq3zym7-prettier-3.3.3/bin/prettier",
    filetypes = { "typescript" },
  })
)


-- SECTION: null_ls
require('null-ls').setup({
  debug = false,
  diagnostics_format = "[#{m}] #{s} (#{c})",
  debounce = 250,
  default_timeout = 5000,
  sources = ls_sources,
  on_attach = default_on_attach
})


-- SECTION: nvim-dap
local dap = require("dap")
vim.fn.sign_define("DapBreakpoint", { text = "🛑", texthl = "ErrorMsg", linehl = "", numhl = "" })


-- SECTION: nvim-dap-ui
dap.listeners.after.event_initialized["dapui_config"] = function()
  require("dapui").open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
  require("dapui").close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
  require("dapui").close()
end


-- SECTION: nvim-notify
local notify = require("notify")
notify.setup({["background_colour"] = "NotifyBackground",["icons"] = {["DEBUG"] = "",["ERROR"] = "",["INFO"] = "",["TRACE"] = "",["WARN"] = ""},["position"] = "top_right",["render"] = "compact",["stages"] = "fade_in_slide_out",["timeout"] = 1000})
vim.notify = notify.notify


-- SECTION: nvim-web-devicons
require("nvim-web-devicons").setup({["color_icons"] = true,["override"] = {}})


-- SECTION: nvimBufferline
require("bufferline").setup({["highlights"] = {},["options"] = {["always_show_bufferline"] = true,["auto_toggle_bufferline"] = true,["buffer_close_icon"] = " 󰅖 ",["close_command"] = function(bufnum)
  require("bufdelete").bufdelete(bufnum, false)
end
,["close_icon"] = "  ",["color_icons"] = true,["diagnostics"] = "nvim_lsp",["diagnostics_indicator"] = function(count, level, diagnostics_dict, context)
  local s = " "
    for e, n in pairs(diagnostics_dict) do
      local sym = e == "error" and "   "
        or (e == "warning" and "   " or "  " )
      s = s .. n .. sym
    end
  return s
end
,["diagnostics_update_in_insert"] = false,["duplicates_across_groups"] = true,["enforce_regular_tabs"] = false,["hover"] = {["delay"] = 200,["enabled"] = true,["reveal"] = {"close"}},["indicator"] = {["style"] = "underline"},["left_mouse_command"] = "buffer %d",["left_trunc_marker"] = "",["max_name_length"] = 18,["max_prefix_length"] = 15,["mode"] = "buffers",["modified_icon"] = "● ",["move_wraps_at_ends"] = false,["numbers"] = function(opts)
  return string.format('%s·%s', opts.raise(opts.id), opts.lower(opts.ordinal))
end
,["offsets"] = {{["filetype"] = "NvimTree",["highlight"] = "Directory",["separator"] = true,["text"] = "File Explorer"}},["persist_buffer_sort"] = true,["right_mouse_command"] = "vertical sbuffer %d",["right_trunc_marker"] = "",["separator_style"] = "thin",["show_buffer_close_icons"] = true,["show_buffer_icons"] = true,["show_close_icon"] = true,["show_duplicate_prefix"] = true,["show_tab_indicators"] = true,["sort_by"] = "extension",["style_preset"] = require('bufferline').style_preset.default,["tab_size"] = 18,["themable"] = true,["truncate_names"] = true}})


-- SECTION: python-lsp
lspconfig.basedpyright.setup{
  capabilities = capabilities;
  on_attach = default_on_attach;
  cmd = {"/nix/store/yl01b73kgmdmgf10njp7ga3ql0nrrlvs-basedpyright-1.23.1/bin/basedpyright-langserver", "--stdio"}
}


-- SECTION: render-markdown-nvim
require("render-markdown").setup({["auto_override_publish_diagnostics"] = true})


-- SECTION: smartcolumn
require("smartcolumn").setup({["colorcolumn"] = "120",["custom_colorcolumn"] = {},["disabled_filetypes"] = {"help","text","markdown","NvimTree","alpha"}})


-- SECTION: treesitter
require('nvim-treesitter.configs').setup {
  -- Disable imperative treesitter options that would attempt to fetch
  -- grammars into the read-only Nix store. To add additional grammars here
  -- you must use the `config.vim.treesitter.grammars` option.
  auto_install = false,
  sync_install = false,
  ensure_installed = {},

  -- Indentation module for Treesitter
  indent = {
    enable = true,
    disable = {},
  },

  -- Highlight module for Treesitter
  highlight = {
    enable = true,
    disable = {},
    additional_vim_regex_highlighting = false,
  },

  -- Indentation module for Treesitter
  -- Keymaps are set to false here as they are
  -- handled by `vim.maps` entries calling lua
  -- functions achieving the same functionality.
  incremental_selection = {
    enable = true,
    disable = {},
    keymaps = {
      init_selection = false,
      node_incremental = false,
      scope_incremental = false,
      node_decremental = false,

    },
  },
}


-- SECTION: treesitter-context
require("treesitter-context").setup({["line_numbers"] = true,["max_lines"] = 0,["min_window_height"] = 0,["mode"] = "cursor",["multiline_threshold"] = 20,["separator"] = "-",["trim_scope"] = "outer",["zindex"] = 20})


-- SECTION: treesitter-fold
-- This is required by treesitter-context to handle folds
vim.o.foldmethod = "expr"
vim.o.foldexpr = "nvim_treesitter#foldexpr()"

-- This is optional, but is set rather as a sane default.
-- If unset, opened files will be folded by automatically as
-- the files are opened
vim.o.foldenable = false


-- SECTION: ts-lsp
lspconfig.ts_ls.setup {
  capabilities = capabilities,
  on_attach = function(client, bufnr)
    attach_keymaps(client, bufnr);
    client.server_capabilities.documentFormattingProvider = false;
  end,
  cmd = {"/nix/store/wgv8qka0bq4zv6sq9913a5nq6nz97a33-typescript-language-server-4.3.3/bin/typescript-language-server", "--stdio"}
}


-- SECTION: whichkey
local wk = require("which-key")
wk.setup ({["notify"] = true,["preset"] = "modern",["replace"] = {["<cr>"] = "RETURN",["<leader>"] = "SPACE",["<space>"] = "SPACE",["<tab>"] = "TAB"},["win"] = {["border"] = "rounded"}})
wk.add({{ '<leader>b', desc = '+Buffer' },{ '<leader>bm', desc = 'BufferLineMove' },{ '<leader>bs', desc = 'BufferLineSort' },{ '<leader>bsi', desc = 'BufferLineSortById' },{ '<leader>f', desc = '+Telescope' },{ '<leader>fl', desc = 'Telescope LSP' },{ '<leader>fm', desc = 'Cellular Automaton' },{ '<leader>fv', desc = 'Telescope Git' },{ '<leader>fvc', desc = 'Commits' },{ '<leader>g', desc = '+Gitsigns' }})




-- SECTION: extraPluginConfigs


-- SECTION: mappings
vim.keymap.set("n", "<leader>dc", require('dap').continue, {["desc"] = "Continue",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dR", require('dap').restart, {["desc"] = "Restart",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dq", require('dap').terminate, {["desc"] = "Terminate",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>d.", require('dap').run_last, {["desc"] = "Re-run Last Debug Session",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dr", require('dap').repl.toggle, {["desc"] = "Toggle Repl",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dh", require('dap.ui.widgets').hover, {["desc"] = "Hover",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>db", require('dap').toggle_breakpoint, {["desc"] = "Toggle breakpoint",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dgc", require('dap').run_to_cursor, {["desc"] = "Continue to the current cursor",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dgi", require('dap').step_into, {["desc"] = "Step into function",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dgo", require('dap').step_out, {["desc"] = "Step out of function",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dgj", require('dap').step_over, {["desc"] = "Next step",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dgk", require('dap').step_back, {["desc"] = "Step back",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dvo", require('dap').up, {["desc"] = "Go up stacktrace",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set("n", "<leader>dvi", require('dap').down, {["desc"] = "Go down stacktrace",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bc", ":BufferLinePick<CR>", {["desc"] = "Pick buffer",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bmn", ":BufferLineMoveNext<CR>", {["desc"] = "Move next buffer",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bmp", ":BufferLineMovePrev<CR>", {["desc"] = "Move previous buffer",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bn", ":BufferLineCycleNext<CR>", {["desc"] = "Next buffer",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bp", ":BufferLineCyclePrev<CR>", {["desc"] = "Previous buffer",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bsd", ":BufferLineSortByDirectory<CR>", {["desc"] = "Sort buffers by directory",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bse", ":BufferLineSortByExtension<CR>", {["desc"] = "Sort buffers by extension",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>bsi", function() require("bufferline").sort_buffers_by(function (buf_a, buf_b) return buf_a.id < buf_b.id end) end, {["desc"] = "Sort buffers by ID",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hD", function() package.loaded.gitsigns.diffthis('~') end, {["desc"] = "Diff project [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hP", package.loaded.gitsigns.preview_hunk, {["desc"] = "Preview hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hR", package.loaded.gitsigns.reset_buffer, {["desc"] = "Reset buffer [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hS", package.loaded.gitsigns.stage_buffer, {["desc"] = "Stage buffer [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hb", function() package.loaded.gitsigns.blame_line{full=true} end, {["desc"] = "Blame line [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hd", package.loaded.gitsigns.diffthis, {["desc"] = "Diff this [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hr", package.loaded.gitsigns.reset_hunk, {["desc"] = "Reset hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hs", package.loaded.gitsigns.stage_hunk, {["desc"] = "Stage hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>hu", package.loaded.gitsigns.undo_stage_hunk, {["desc"] = "Undo stage hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>tb", package.loaded.gitsigns.toggle_current_line_blame, {["desc"] = "Toggle blame [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "<leader>td", package.loaded.gitsigns.toggle_deleted, {["desc"] = "Toggle deleted [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "[c", function()
  if vim.wo.diff then return "[c" end

  vim.schedule(function() package.loaded.gitsigns.prev_hunk() end)

  return '<Ignore>'
end
, {["desc"] = "Previous hunk [Gitsigns]",["expr"] = true,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "]c", function()
  if vim.wo.diff then return "]c" end

  vim.schedule(function() package.loaded.gitsigns.next_hunk() end)

  return '<Ignore>'
end
, {["desc"] = "Next hunk [Gitsigns]",["expr"] = true,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n"}, "gnn", ":lua require('nvim-treesitter.incremental_selection').init_selection()<CR>", {["desc"] = "Init selection [treesitter]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"v"}, "<leader>hr", function() package.loaded.gitsigns.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end, {["desc"] = "Reset hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"v"}, "<leader>hs", function() package.loaded.gitsigns.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end, {["desc"] = "Stage hunk [Gitsigns]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n","x"}, "grc", "<cmd>lua require('nvim-treesitter.incremental_selection').scope_incremental()<CR>", {["desc"] = "Increment selection by scope [treesitter]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n","x"}, "grm", "<cmd>lua require('nvim-treesitter.incremental_selection').node_decremental()<CR>", {["desc"] = "Decrement selection by node [treesitter]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})
vim.keymap.set({"n","x"}, "grn", "<cmd>lua require('nvim-treesitter.incremental_selection').node_incremental()<CR>", {["desc"] = "Increment selection by node [treesitter]",["expr"] = false,["noremap"] = true,["nowait"] = false,["script"] = false,["silent"] = true,["unique"] = false})


-- SECTION: spellcheck
-- Disable spellchecking for certain filetypes
-- as configured by `vim.spellcheck.ignoredFiletypes`
vim.api.nvim_create_augroup("nvf_autocmds", {clear = false})
vim.api.nvim_create_autocmd({ "FileType" }, {
  group = "nvf_autocmds",
  pattern = { "toggleterm" },
  callback = function()
    vim.opt_local.spell = false
  end,
})
@skttlock skttlock added the bug Something isn't working label Feb 28, 2025
@skttlock
Copy link
Author

I feel like I misused the log output- lol.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant