feat(nvim): mini files and rust opti

This commit is contained in:
grimhilt 2024-08-29 17:26:46 +02:00
parent f907a2be6b
commit e739799fb6
6 changed files with 668 additions and 485 deletions

View File

@ -62,7 +62,7 @@ vim.o.scrolloff = 8
vim.g.rustfmt_autosave = 1
--
-- vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
vim.keymap.set("n", "<leader>h", ":noh<CR>")
--move line shortcut
@ -136,8 +136,72 @@ require('lazy').setup({
'tpope/vim-rhubarb',
-- harpoon
'nvim-lua/plenary.nvim',
-- {
-- 'ThePrimeagen/harpoon',
-- branch = "harpoon2",
-- dependencies = { "nvim-lua/plenary.nvim" }
-- },
{
'ThePrimeagen/harpoon',
branch = 'harpoon2',
opts = {
menu = {
width = vim.api.nvim_win_get_width(0) - 4,
},
},
keys = {
{
'<leader>q',
function()
require('harpoon'):list():add()
end,
desc = 'Harpoon File',
},
{
'<C-e>',
function()
local harpoon = require('harpoon')
harpoon.ui:toggle_quick_menu(harpoon:list())
end,
desc = 'Harpoon Quick Menu',
},
{
'<M-q>',
function()
require('harpoon'):list():select(1)
end,
desc = 'Harpoon to File 1',
},
{
'<M-w>',
function()
require('harpoon'):list():select(2)
end,
desc = 'Harpoon to File 2',
},
{
'<M-e>',
function()
require('harpoon'):list():select(3)
end,
desc = 'Harpoon to File 3',
},
{
'<M-r>',
function()
require('harpoon'):list():select(4)
end,
desc = 'Harpoon to File 4',
},
{
'<M-t>',
function()
require('harpoon'):list():select(5)
end,
desc = 'Harpoon to File 5',
},
},
},
-- Mini
{ 'echasnovski/mini.files', version = false },
@ -202,7 +266,7 @@ require('lazy').setup({
"simrat39/rust-tools.nvim",
-- Useful plugin to show you pending keybinds.
{ 'folke/which-key.nvim', opts = {} },
-- { 'folke/which-key.nvim', opts = {} },
--{
-- -- Adds git related signs to the gutter, as well as utilities for managing changes
-- 'lewis6991/gitsigns.nvim',
@ -395,22 +459,6 @@ vim.keymap.set('n', '<leader>d', vim.diagnostic.setloclist, { desc = 'Open diagn
-- pattern = '*',
--})
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
defaults = {
mappings = {
i = {
['<C-u>'] = false,
['<C-d>'] = false,
},
},
},
}
require('mini.files').setup()
vim.keymap.set("n", "<leader>pv", '<CMD>lua MiniFiles.open(vim.api.nvim_buf_get_name(0)); MiniFiles.reveal_cwd()<CR>', { desc = 'Open MiniFiles' })
-- Enable telescope fzf native, if installed
pcall(require('telescope').load_extension, 'fzf')
@ -600,22 +648,22 @@ local on_attach = function(_, bufnr)
end
-- document existing key chains
require('which-key').register {
['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
['<leader>g'] = { name = '[G]it', _ = 'which_key_ignore' },
['<leader>h'] = { name = 'Git [H]unk', _ = 'which_key_ignore' },
['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
['<leader>t'] = { name = '[T]oggle', _ = 'which_key_ignore' },
['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
}
-- register which-key VISUAL mode
-- required for visual <leader>hs (hunk stage) to work
require('which-key').register({
['<leader>'] = { name = 'VISUAL <leader>' },
['<leader>h'] = { 'Git [H]unk' },
}, { mode = 'v' })
-- require('which-key').register {
-- ['<leader>c'] = { name = '[C]ode', _ = 'which_key_ignore' },
-- ['<leader>d'] = { name = '[D]ocument', _ = 'which_key_ignore' },
-- ['<leader>g'] = { name = '[G]it', _ = 'which_key_ignore' },
-- ['<leader>h'] = { name = 'Git [H]unk', _ = 'which_key_ignore' },
-- ['<leader>r'] = { name = '[R]ename', _ = 'which_key_ignore' },
-- ['<leader>s'] = { name = '[S]earch', _ = 'which_key_ignore' },
-- ['<leader>t'] = { name = '[T]oggle', _ = 'which_key_ignore' },
-- ['<leader>w'] = { name = '[W]orkspace', _ = 'which_key_ignore' },
-- }
-- -- register which-key VISUAL mode
-- -- required for visual <leader>hs (hunk stage) to work
-- require('which-key').register({
-- ['<leader>'] = { name = 'VISUAL <leader>' },
-- ['<leader>h'] = { 'Git [H]unk' },
-- }, { mode = 'v' })
-- mason-lspconfig requires that these setup functions are called in this order
-- before setting up the servers.
@ -657,7 +705,6 @@ vim.api.nvim_create_autocmd("LspAttach", {
-- toggle inlay hint
vim.keymap.set("n", "<leader>ri", function() vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled({0}), {0}) end)
-- Enable the following language servers
-- Feel free to add/remove any LSPs that you want here. They will automatically be installed.
--
@ -670,7 +717,27 @@ local servers = {
-- clangd = {},
-- gopls = {},
-- pyright = {},
rust_analyzer = {},
rust_analyzer = {
imports = {
granularity = {
group = "module",
},
prefix = "self",
},
cargo = {
buildScripts = {
enable = true,
},
},
procMacro = {
enable = true,
},
diagnostics = {
experimental = {
enable = false
}
}
},
-- tsserver = {},
-- html = { filetypes = { 'html', 'twig', 'hbs'} },
@ -696,6 +763,7 @@ local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
ensure_installed = vim.tbl_keys(servers),
-- ensure_installed = { "rust-analyzer" }
}
mason_lspconfig.setup_handlers {

View File

@ -1,28 +1,28 @@
{
"Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
"LuaSnip": { "branch": "master", "commit": "f3b3d3446bcbfa62d638b1903ff00a78b2b730a1" },
"cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
"LuaSnip": { "branch": "master", "commit": "45db5addf8d0a201e1cf247cae4cdce605ad3768" },
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
"fidget.nvim": { "branch": "main", "commit": "60404ba67044c6ab01894dd5bf77bd64ea5e09aa" },
"friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" },
"harpoon": { "branch": "master", "commit": "ccae1b9bec717ae284906b0bf83d720e59d12b91" },
"fidget.nvim": { "branch": "main", "commit": "d855eed8a06531a7e8fd0684889b2943f373c469" },
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "21d33d69a81f6351e5a5f49078b2e4f0075c8e73" },
"mason.nvim": { "branch": "main", "commit": "3b5068f0fc565f337d67a2d315d935f574848ee7" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "482350b050bd413931c2cdd4857443c3da7d57cb" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
"mini.files": { "branch": "main", "commit": "2e262838a773c0bc3ccbc9c4bcf4a1a012497ea2" },
"neodev.nvim": { "branch": "main", "commit": "3157f2e876fd6223d36cfa76bee4709247d62fa5" },
"nvim-autopairs": { "branch": "master", "commit": "c6139ca0d5ad7af129ea6c89cb4c56093f2c034a" },
"nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" },
"nvim-lspconfig": { "branch": "master", "commit": "ec7d51a619049c7c597f469f81ea199db6794651" },
"nvim-treesitter": { "branch": "master", "commit": "fad40f2010c6f50aaad285b2752551a37d8772e4" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "7f00d94543f1fd37cab2afa2e9a6cd54e1c6b9ef" },
"onedark.nvim": { "branch": "master", "commit": "1230aaf2a427b2c5b73aba6e4a9a5881d3e69429" },
"plenary.nvim": { "branch": "master", "commit": "4f71c0c4a196ceb656c824a70792f3df3ce6bb6d" },
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
"nvim-autopairs": { "branch": "master", "commit": "19606af7c039271d5aa96bceff101e7523af3136" },
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
"nvim-lspconfig": { "branch": "master", "commit": "6bfd9210e312af6cfedba05d272e85618c93ab0d" },
"nvim-treesitter": { "branch": "master", "commit": "585860a1865853d2c287c8ef534297da8115818e" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "41e3abf6bfd9a9a681eb1f788bdeba91c9004b2b" },
"onedark.nvim": { "branch": "master", "commit": "fae34f7c635797f4bf62fb00e7d0516efa8abe37" },
"plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
"rust-tools.nvim": { "branch": "master", "commit": "676187908a1ce35ffcd727c654ed68d851299d3e" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
"telescope.nvim": { "branch": "0.1.x", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
"vim-fugitive": { "branch": "master", "commit": "2e88f14a585c014691904ba8fe39e6ea851c9422" },
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
"telescope.nvim": { "branch": "0.1.x", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
"vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" },
"vim-rhubarb": { "branch": "master", "commit": "ee69335de176d9325267b0fd2597a22901d927b1" },
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }
}

View File

@ -1,11 +1,11 @@
local mark = require("harpoon.mark")
local ui = require("harpoon.ui")
vim.keymap.set("n", "<leader>q", mark.add_file)
vim.keymap.set("n", "<C-e>", ui.toggle_quick_menu)
vim.keymap.set("n", "<M-q>", function() ui.nav_file(1) end)
vim.keymap.set("n", "<M-w>", function() ui.nav_file(2) end)
vim.keymap.set("n", "<M-e>", function() ui.nav_file(3) end)
vim.keymap.set("n", "<M-r>", function() ui.nav_file(4) end)
vim.keymap.set("n", "<M-t>", function() ui.nav_file(5) end)
local harpoon = require("harpoon")
harpoon:setup()
--
-- vim.keymap.set("n", "<leader>q", function() harpoon:list().append() end)
-- vim.keymap.set("n", "<C-e>", function() harpoon.ui:toggle_quick_menu(harpoon:list()) end)
--
-- vim.keymap.set("n", "<M-q>", function() harpoon:list():select(1) end)
-- vim.keymap.set("n", "<M-w>", function() harpoon:list():select(2) end)
-- vim.keymap.set("n", "<M-e>", function() harpoon:list():select(3) end)
-- vim.keymap.set("n", "<M-r>", function() harpoon:list():select(4) end)
-- vim.keymap.set("n", "<M-t>", function() harpoon:list():select(5) end)

View File

@ -0,0 +1,52 @@
require('mini.files').setup({
-- Customization of shown content
content = {
-- Predicate for which file system entries to show
filter = nil,
-- What prefix to show to the left of file system entry
prefix = nil,
-- In which order to show file system entries
sort = nil,
},
-- Module mappings created only inside explorer.
-- Use `''` (empty string) to not create one.
mappings = {
close = 'q',
go_in = 'l',
go_in_plus = 'L',
go_out = 'h',
go_out_plus = 'H',
reset = '<BS>',
reveal_cwd = '@',
show_help = 'g?',
synchronize = '=',
trim_left = '<',
trim_right = '>',
},
-- General options
options = {
-- Whether to delete permanently or move into module-specific trash
permanent_delete = true,
-- Whether to use for editing directories
use_as_default_explorer = true,
},
-- Customization of explorer windows
windows = {
-- Maximum number of windows to show side by side
max_number = math.huge,
-- Whether to show preview of file/directory under cursor
preview = false,
-- Width of focused window
width_focus = 50,
-- Width of non-focused window
width_nofocus = 15,
-- Width of preview window
width_preview = 25,
},
})
vim.keymap.set("n", "-", '<CMD>lua MiniFiles.open(vim.api.nvim_buf_get_name(0)); MiniFiles.reveal_cwd()<CR>', { desc = 'Open MiniFiles' })
vim.keymap.set("n", "<ESC>", '<CMD>lua MiniFiles.close()<CR>', { desc = 'Close MiniFiles' })

View File

@ -0,0 +1,50 @@
-- vim.g.auto_ra_attach = true
--
-- vim.g.rustaceanvim = {
-- -- Plugin configuration
-- tools = {},
-- -- LSP configuration
-- ---@type RustaceanLspClientOpts
-- server = {
-- load_vscode_settings = true,
-- auto_attach = function(bufnr)
-- return vim.g.auto_ra_attach
-- end,
-- on_attach = function(client, _)
-- client.server_capabilities.workspace.didChangeWatchedFiles = {
-- dynamicRegistration = false,
-- relativePatternSupport = false,
-- }
--
-- vim.api.nvim_create_autocmd({ 'BufEnter' }, {
-- desc = 'Resize splits when resizing the window',
-- pattern = { '*.rs' },
-- callback = function()
-- vim.cmd('RustAnalyzer reloadSettings')
-- end,
-- })
-- end,
-- default_settings = {
-- ['rust-analyzer'] = {
-- cachePriming = false,
-- rustfmt = {
-- extraArgs = {
-- '--config',
-- 'comment_width=120,condense_wildcard_suffixes=false,format_code_in_doc_comments=true,format_macro_bodies=true,hex_literal_case=Upper,imports_granularity=One,normalize_doc_attributes=true,wrap_comments=true',
-- },
-- },
-- },
-- },
-- },
-- -- DAP configuration
-- dap = {},
-- }
--
-- return {
-- {
-- 'mrcjkb/rustaceanvim',
-- version = '^4', -- Recommended
-- ft = { 'rust' },
-- dev = true,
-- },
-- }

View File

@ -1,3 +1,16 @@
-- [[ Configure Telescope ]]
-- See `:help telescope` and `:help telescope.setup()`
require('telescope').setup {
defaults = {
mappings = {
i = {
['<C-u>'] = false,
['<C-d>'] = false,
},
},
},
}
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>pf', builtin.find_files, {noremap = true})