diff --git a/users/myuser/neovim/default.nix b/users/myuser/neovim/default.nix index 735ec99..adc33c0 100644 --- a/users/myuser/neovim/default.nix +++ b/users/myuser/neovim/default.nix @@ -120,60 +120,60 @@ # Language server # ------------------------------------------------------------------------------------------------- - (keymap ["n"] "gD" "lua vim.lsp.buf.declaration()" "") - (keymap ["n"] "gd" "lua require('telescope.builtin').lsp_definitions()" "") - (keymap ["n"] "K" "lua vim.lsp.buf.hover()" "") - (keymap ["n"] "gi" "lua require('telescope.builtin').lsp_implementations()" "") - (keymap ["n"] "" "lua vim.lsp.buf.signature_help()" "") - (keymap ["n"] "wa" "lua vim.lsp.buf.add_workspace_folder()" "") - (keymap ["n"] "wr" "lua vim.lsp.buf.remove_workspace_folder()" "") - (keymap ["n"] "wl" "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))" "") - (keymap ["n"] "gt" "lua require('telescope.builtin').lsp_type_definitions()" "") - (keymap ["n"] "r" "lua vim.lsp.buf.rename()" "") - (keymap ["n"] "a" "lua vim.lsp.buf.code_action()" "") - (keymap ["n"] "gr" "lua require('telescope.builtin').lsp_references()" "") - (keymap ["n"] "gl" "lua vim.diagnostic.open_float()" "") - (keymap ["n"] "[d" "lua vim.diagnostic.goto_prev()" "") - (keymap ["n"] "]d" "lua vim.diagnostic.goto_next()" "") - (keymap ["n"] "q" "lua vim.diagnostic.setloclist()" "") - (keymap ["n"] "f" "lua vim.lsp.buf.format { async = true }" "") + (keymap ["n"] "gD" "lua vim.lsp.buf.declaration()" "Goto declaration") + (keymap ["n"] "gd" "lua require('telescope.builtin').lsp_definitions()" "Goto definition") + (keymap ["n"] "K" "lua vim.lsp.buf.hover()" "Hover") + (keymap ["n"] "gi" "lua require('telescope.builtin').lsp_implementations()" "Goto implementation") + (keymap ["n"] "" "lua vim.lsp.buf.signature_help()" "Signature Help") + (keymap ["n"] "wa" "lua vim.lsp.buf.add_workspace_folder()" "Add workspace folder") + (keymap ["n"] "wr" "lua vim.lsp.buf.remove_workspace_folder()" "Remove workspace folder") + (keymap ["n"] "wl" "lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))" "List workspace folders") + (keymap ["n"] "gt" "lua require('telescope.builtin').lsp_type_definitions()" "Goto type-definition") + (keymap ["n"] "r" "lua vim.lsp.buf.rename()" "Rename") + (keymap ["n"] "a" "lua vim.lsp.buf.code_action()" "Code Action") + (keymap ["n"] "gr" "lua require('telescope.builtin').lsp_references()" "References") + (keymap ["n"] "gl" "lua vim.diagnostic.open_float()" "Diagnostic float") + (keymap ["n"] "[d" "lua vim.diagnostic.goto_prev()" "Next diagnostic") + (keymap ["n"] "]d" "lua vim.diagnostic.goto_next()" "Previous diagnostic") + (keymap ["n"] "q" "lua vim.diagnostic.setloclist()" "Show diagnostic quickfix list") + (keymap ["n"] "f" "lua vim.lsp.buf.format { async = true }" "Format code") # ------------------------------------------------------------------------------------------------- # Plugin: Easy Align # ------------------------------------------------------------------------------------------------- - (keymap ["n"] "A" "(EasyAlign)" "") - (keymap ["v"] "A" "(EasyAlign)" "") + (keymap ["n"] "A" "(EasyAlign)" "Easy-Align") + (keymap ["v"] "A" "(EasyAlign)" "Easy-Align") # ------------------------------------------------------------------------------------------------- # Plugin: Undotree # ------------------------------------------------------------------------------------------------- - (keymap ["n"] "u" ":UndotreeToggle" "") + (keymap ["n"] "u" ":UndotreeToggle" "Undotree") # ------------------------------------------------------------------------------------------------- # Plugin: Better Whitespace # ------------------------------------------------------------------------------------------------- - (keymap ["n"] "$" ":StripWhitespace" "") + (keymap ["n"] "$" ":StripWhitespace" "Strip whitespace") # ------------------------------------------------------------------------------------------------- # Plugin: Neotree # ------------------------------------------------------------------------------------------------- # Mappings to open the tree / find the current file - (keymap ["n"] "t" ":Neotree toggle" "") - (keymap ["n"] "T" ":Neotree reveal" "") - (keymap ["n"] "G" ":Neotree float git_status" "") - (keymap ["n"] "b" ":Neotree float buffers" "") + (keymap ["n"] "t" ":Neotree toggle" "Filetree toggle") + (keymap ["n"] "T" ":Neotree reveal" "Filetree reveal current file") + (keymap ["n"] "G" ":Neotree float git_status" "Show git status") + (keymap ["n"] "b" ":Neotree float buffers" "Show open buffers") # ------------------------------------------------------------------------------------------------- # Plugin: Sandwich # ------------------------------------------------------------------------------------------------- - (keymap ["n" "v"] "m" "(operator-sandwich-add)" "") - (keymap ["n" "v"] "M" "(operator-sandwich-delete)" "") - (keymap ["n" "v"] "C-m" "(operator-sandwich-replace)" "") + (keymap ["n" "v"] "m" "(operator-sandwich-add)" "Sandwich Add") + (keymap ["n" "v"] "M" "(operator-sandwich-delete)" "Sandwich Delete") + (keymap ["n" "v"] "" "(operator-sandwich-replace)" "Sandwich Replace") # ------------------------------------------------------------------------------------------------- # Plugin: gomove @@ -203,13 +203,45 @@ # Plugin: wordmotion # ------------------------------------------------------------------------------------------------- - (keymap ["x" "o"] "ie" "WordMotion_iw" "") + (keymap ["x" "o"] "ie" "WordMotion_iw" "inside subword") + + # ------------------------------------------------------------------------------------------------- + # Plugin: telescope + # ------------------------------------------------------------------------------------------------- + + (keymap ["n" "v"] "" "lua require('telescope.builtin').find_files()" "Telescope find files") + (keymap ["n" "v"] "g" "lua require('telescope.builtin').live_grep()" "Telescope live grep") + (keymap ["n" "v"] "b" "lua require('telescope.builtin').buffers()" "Telescope buffers") # ------------------------------------------------------------------------------------------------- # Plugin: textcase # ------------------------------------------------------------------------------------------------- - # TODO: ... keybinds + telescope integration + (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').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") ]; }; diff --git a/users/myuser/neovim/languages.nix b/users/myuser/neovim/languages.nix index bf91dc3..d0fe0a6 100644 --- a/users/myuser/neovim/languages.nix +++ b/users/myuser/neovim/languages.nix @@ -37,10 +37,9 @@ }; }; - # Rust specific LSP tools - rust-tools = { + rustaceanvim = { enable = true; - server.check.command = "clippy"; + server.settings.files.excludeDirs = [".direnv"]; }; }; }; diff --git a/users/myuser/neovim/lsp.nix b/users/myuser/neovim/lsp.nix index 1c466cc..e7ee00d 100644 --- a/users/myuser/neovim/lsp.nix +++ b/users/myuser/neovim/lsp.nix @@ -27,16 +27,7 @@ bashls.enable = true; cssls.enable = true; html.enable = true; - rust-analyzer = { - enable = true; - settings = { - checkOnSave = true; - check.command = "clippy"; - }; - # cargo and rustc are managed per project with their own flakes. - installCargo = false; - installRustc = false; - }; + # rust-analyzer should not be set here because of rustaceanvim nil_ls = { enable = true; settings = { diff --git a/users/myuser/neovim/misc.nix b/users/myuser/neovim/misc.nix index 19cd3ed..8f6fe37 100644 --- a/users/myuser/neovim/misc.nix +++ b/users/myuser/neovim/misc.nix @@ -26,7 +26,7 @@ # Fzf picker for arbitrary stuff telescope = { enable = true; - enabledExtensions = ["fzf" "notify" "ui-select"]; + enabledExtensions = ["fzf" "notify" "ui-select" "textcase"]; extensions.fzf-native.enable = true; }; @@ -113,6 +113,10 @@ }, }, } + + require('textcase').setup { + default_keymappings_enabled = false, + } ''; }; }