From af91ba38a58c360becb43d03ff0aa6a26a96a56d Mon Sep 17 00:00:00 2001 From: oddlama Date: Wed, 13 Mar 2024 17:31:37 +0100 Subject: [PATCH] feat(neovim): enable dap --- users/myuser/neovim/completion.nix | 92 +++++++++++++++--------------- users/myuser/neovim/default.nix | 62 ++++++++------------ users/myuser/neovim/languages.nix | 20 +++++-- users/myuser/neovim/lsp.nix | 8 ++- users/myuser/neovim/misc.nix | 9 +++ 5 files changed, 102 insertions(+), 89 deletions(-) diff --git a/users/myuser/neovim/completion.nix b/users/myuser/neovim/completion.nix index b8f2e54..18dc817 100644 --- a/users/myuser/neovim/completion.nix +++ b/users/myuser/neovim/completion.nix @@ -12,6 +12,7 @@ }; cmp_luasnip.enable = true; + cmp-dap.enable = true; cmp-cmdline.enable = true; cmp-cmdline-history.enable = true; cmp-path.enable = true; @@ -29,7 +30,8 @@ {name = "nvim_lsp_document_symbol";} {name = "path";} {name = "treesitter";} - {name = "luasnip";} + {name = "dap";} + # {name = "luasnip";} {name = "emoji";} ]; mapping = { @@ -105,50 +107,50 @@ */ '' function(_, vim_item) - local icons = { - Namespace = "󰌗", - Text = "󰉿", - Method = "󰆧", - Function = "󰆧", - Constructor = "", - Field = "󰜢", - Variable = "󰀫", - Class = "󰠱", - Interface = "", - Module = "", - Property = "󰜢", - Unit = "󰑭", - Value = "󰎠", - Enum = "", - Keyword = "󰌋", - Snippet = "", - Color = "󰏘", - File = "󰈚", - Reference = "󰈇", - Folder = "󰉋", - EnumMember = "", - Constant = "󰏿", - Struct = "󰙅", - Event = "", - Operator = "󰆕", - TypeParameter = "󰊄", - Table = "", - Object = "󰅩", - Tag = "", - Array = "󰅪", - Boolean = "", - Number = "", - Null = "󰟢", - String = "󰉿", - Calendar = "", - Watch = "󰥔", - Package = "", - Copilot = "", - Codeium = "", - TabNine = "", - } - vim_item.kind = string.format("%s %s", icons[vim_item.kind], vim_item.kind) - return vim_item + local icons = { + Namespace = "󰌗", + Text = "󰉿", + Method = "󰆧", + Function = "󰆧", + Constructor = "", + Field = "󰜢", + Variable = "󰀫", + Class = "󰠱", + Interface = "", + Module = "", + Property = "󰜢", + Unit = "󰑭", + Value = "󰎠", + Enum = "", + Keyword = "󰌋", + Snippet = "", + Color = "󰏘", + File = "󰈚", + Reference = "󰈇", + Folder = "󰉋", + EnumMember = "", + Constant = "󰏿", + Struct = "󰙅", + Event = "", + Operator = "󰆕", + TypeParameter = "󰊄", + Table = "", + Object = "󰅩", + Tag = "", + Array = "󰅪", + Boolean = "", + Number = "", + Null = "󰟢", + String = "󰉿", + Calendar = "", + Watch = "󰥔", + Package = "", + Copilot = "", + Codeium = "", + TabNine = "", + } + vim_item.kind = string.format("%s %s", icons[vim_item.kind], vim_item.kind) + return vim_item end ''; snippet.expand = diff --git a/users/myuser/neovim/default.nix b/users/myuser/neovim/default.nix index adc33c0..dbd6852 100644 --- a/users/myuser/neovim/default.nix +++ b/users/myuser/neovim/default.nix @@ -27,22 +27,6 @@ # TODO for wayland: # clipboard.providers.wl-copy.enable = true; - #colorschemes.catppuccin = { - # enable = true; - # flavour = "mocha"; - # integrations = { - # dap.enabled = true; - # dap.enable_ui = true; - # fidget = true; - # indent_blankline = { - # enabled = true; - # colored_indent_levels = true; - # }; - # native_lsp.enabled = true; - # }; - #}; - #colorschemes.onedark.enable = true; - luaLoader.enable = true; globals.mapleader = ","; @@ -114,7 +98,7 @@ (keymap ["t"] "" "" "") # Open fixed size terminal window at the bottom - (keymap ["n"] "" ":belowright new | setlocal wfh | resize 10 | terminal" "") + (keymap ["n"] "" ":belowright new | setlocal wfh | resize 10 | terminal" "Open Terminal") # ------------------------------------------------------------------------------------------------- # Language server @@ -219,29 +203,29 @@ (keymap ["n"] "C" "TextCaseOpenTelescopeQuickChange" "Change word case") - (keymap ["n"] "cu" "lua require('textcase').current_word('to_upper_case')" "To UPPER CASE") - (keymap ["n"] "cl" "lua require('textcase').current_word('to_lower_case')" "To lower case") - (keymap ["n"] "cs" "lua require('textcase').current_word('to_snake_case')" "To snake_case") - (keymap ["n"] "cd" "lua require('textcase').current_word('to_dash_case')" "To dash-case") - (keymap ["n"] "cn" "lua require('textcase').current_word('to_constant_case')" "To CONSTANT_CASE") - (keymap ["n"] "cd" "lua require('textcase').current_word('to_dot_case')" "To dot.case") - (keymap ["n"] "ca" "lua require('textcase').current_word('to_phrase_case')" "To Phrase case") - (keymap ["n"] "cc" "lua require('textcase').current_word('to_camel_case')" "To camelCase") - (keymap ["n"] "cp" "lua require('textcase').current_word('to_pascal_case')" "To PascalCase") - (keymap ["n"] "ct" "lua require('textcase').current_word('to_title_case')" "To Title Case") - (keymap ["n"] "cf" "lua require('textcase').current_word('to_path_case')" "To path/case") + (keymap ["n"] "cu" "lua require('textcase').current_word('to_upper_case')" "To UPPER CASE") + (keymap ["n"] "cl" "lua require('textcase').current_word('to_lower_case')" "To lower case") + (keymap ["n"] "cs" "lua require('textcase').current_word('to_snake_case')" "To snake_case") + (keymap ["n"] "cd" "lua require('textcase').current_word('to_dash_case')" "To dash-case") + (keymap ["n"] "cn" "lua require('textcase').current_word('to_constant_case')" "To CONSTANT_CASE") + (keymap ["n"] "cd" "lua require('textcase').current_word('to_dot_case')" "To dot.case") + (keymap ["n"] "ca" "lua require('textcase').current_word('to_phrase_case')" "To Phrase case") + (keymap ["n"] "cc" "lua require('textcase').current_word('to_camel_case')" "To camelCase") + (keymap ["n"] "cp" "lua require('textcase').current_word('to_pascal_case')" "To PascalCase") + (keymap ["n"] "ct" "lua require('textcase').current_word('to_title_case')" "To Title Case") + (keymap ["n"] "cf" "lua require('textcase').current_word('to_path_case')" "To path/case") - (keymap ["n"] "cU" "lua require('textcase').lsp_rename('to_upper_case')" "To UPPER CASE") - (keymap ["n"] "cL" "lua require('textcase').lsp_rename('to_lower_case')" "To lower case") - (keymap ["n"] "cS" "lua require('textcase').lsp_rename('to_snake_case')" "To snake_case") - (keymap ["n"] "cD" "lua require('textcase').lsp_rename('to_dash_case')" "To dash-case") - (keymap ["n"] "cN" "lua require('textcase').lsp_rename('to_constant_case')" "To CONSTANT_CASE") - (keymap ["n"] "cD" "lua require('textcase').lsp_rename('to_dot_case')" "To dot.case") - (keymap ["n"] "cA" "lua require('textcase').lsp_rename('to_phrase_case')" "To Phrase case") - (keymap ["n"] "cC" "lua require('textcase').lsp_rename('to_camel_case')" "To camelCase") - (keymap ["n"] "cP" "lua require('textcase').lsp_rename('to_pascal_case')" "To PascalCase") - (keymap ["n"] "cT" "lua require('textcase').lsp_rename('to_title_case')" "To Title Case") - (keymap ["n"] "cF" "lua require('textcase').lsp_rename('to_path_case')" "To path/case") + (keymap ["n"] "cU" "lua require('textcase').lsp_rename('to_upper_case')" "LSP Rename: To UPPER CASE") + (keymap ["n"] "cL" "lua require('textcase').lsp_rename('to_lower_case')" "LSP Rename: To lower case") + (keymap ["n"] "cS" "lua require('textcase').lsp_rename('to_snake_case')" "LSP Rename: To snake_case") + (keymap ["n"] "cD" "lua require('textcase').lsp_rename('to_dash_case')" "LSP Rename: To dash-case") + (keymap ["n"] "cN" "lua require('textcase').lsp_rename('to_constant_case')" "LSP Rename: To CONSTANT_CASE") + (keymap ["n"] "cD" "lua require('textcase').lsp_rename('to_dot_case')" "LSP Rename: To dot.case") + (keymap ["n"] "cA" "lua require('textcase').lsp_rename('to_phrase_case')" "LSP Rename: To Phrase case") + (keymap ["n"] "cC" "lua require('textcase').lsp_rename('to_camel_case')" "LSP Rename: To camelCase") + (keymap ["n"] "cP" "lua require('textcase').lsp_rename('to_pascal_case')" "LSP Rename: To PascalCase") + (keymap ["n"] "cT" "lua require('textcase').lsp_rename('to_title_case')" "LSP Rename: To Title Case") + (keymap ["n"] "cF" "lua require('textcase').lsp_rename('to_path_case')" "LSP Rename: To path/case") ]; }; diff --git a/users/myuser/neovim/languages.nix b/users/myuser/neovim/languages.nix index d0fe0a6..1c61fab 100644 --- a/users/myuser/neovim/languages.nix +++ b/users/myuser/neovim/languages.nix @@ -1,4 +1,4 @@ -{ +{pkgs, ...}: { programs.nixvim = { files."ftplugin/nix.lua".extraConfigLua = '' vim.opt_local.expandtab = true @@ -26,9 +26,6 @@ nixvimInjections = true; }; - # Show the current function / context in topmost line - treesitter-context.enable = true; - # Cargo.toml dependency completion crates-nvim = { enable = true; @@ -40,6 +37,21 @@ rustaceanvim = { enable = true; server.settings.files.excludeDirs = [".direnv"]; + dap.autoloadConfigurations = true; + dap.adapter = let + code-lldb = pkgs.vscode-extensions.vadimcn.vscode-lldb; + in { + executable.command = "${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/adapter/codelldb"; + executable.args = [ + "--liblldb" + "${code-lldb}/share/vscode/extensions/vadimcn.vscode-lldb/lldb/lib/liblldb.dylib" + "--port" + "31337" + ]; + type = "server"; + port = "31337"; + host = "127.0.0.1"; + }; }; }; }; diff --git a/users/myuser/neovim/lsp.nix b/users/myuser/neovim/lsp.nix index e7ee00d..fcf9cd1 100644 --- a/users/myuser/neovim/lsp.nix +++ b/users/myuser/neovim/lsp.nix @@ -71,6 +71,12 @@ }; }; - # TODO dap.enable = true; + dap = { + enable = true; + extensions = { + dap-virtual-text.enable = true; + dap-ui.enable = true; + }; + }; }; } diff --git a/users/myuser/neovim/misc.nix b/users/myuser/neovim/misc.nix index 8f6fe37..3c747ee 100644 --- a/users/myuser/neovim/misc.nix +++ b/users/myuser/neovim/misc.nix @@ -28,6 +28,15 @@ enable = true; enabledExtensions = ["fzf" "notify" "ui-select" "textcase"]; extensions.fzf-native.enable = true; + defaults.mappings.i."".__raw = + /* + lua + */ + '' + function(...) + return require("telescope.actions").close(...) + end + ''; }; # Undo tree