Compare commits

...

2 Commits

4 changed files with 44 additions and 7 deletions

View File

@ -4,10 +4,14 @@ vim.g.localleader = "\\"
require('plugins') require('plugins')
require('vars') require('vars')
require('opts') require('opts')
require('fns')
require('keys') require('keys')
require('theme') require('theme')
require('statusline') require('statusline')
local lspconfig = require("lspconfig")
local rust_tools = require("rust-tools")
-- Mason Setup -- Mason Setup
require("mason").setup({ require("mason").setup({
ui = { ui = {
@ -20,21 +24,25 @@ require("mason").setup({
ensure_installed = { "pylsp", "rust_analyzer" }, ensure_installed = { "pylsp", "rust_analyzer" },
}) })
require("mason-lspconfig").setup() require("mason-lspconfig").setup()
require("lspconfig").pylsp.setup {} lspconfig.pylsp.setup {}
lspconfig.rust_analyzer.setup {}
require("auto-save").setup({ require("auto-save").setup({
enabled = false enabled = false
}) })
local rt = require("rust-tools")
rt.setup({ rust_tools.setup({
server = { server = {
on_attach = function(_, bufnr) on_attach = function(_, bufnr)
-- Hover actions -- Hover actions
vim.keymap.set("n", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr }) vim.keymap.set("n", "<C-space>", rust_tools.hover_actions.hover_actions, { buffer = bufnr })
-- Code action groups -- Code action groups
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr }) vim.keymap.set("n", "<Leader>a", rust_tools.code_action_group.code_action_group, { buffer = bufnr })
end, end,
settings = {
["rust-analyzer"] = {},
}
}, },
}) })

View File

@ -0,0 +1,26 @@
-- change rust-analyzer target
set_rust_target = function(target)
print("rust-analyzer.cargo.target = " .. target)
require("rust-tools").setup({
server = { settings = { ["rust-analyzer"] = { cargo = { target = target } } } },
})
end
-- a custom telescope picker for changing rust-analyzer target
pick_rust_target = function(opts)
opts = opts or {}
require("telescope.pickers").new(opts, {
prompt_title = "rustup target list --installed",
finder = require("telescope.finders").new_oneshot_job({ "rustup", "target", "list", "--installed" }, opts ),
sorter = require("telescope.config").values.generic_sorter(opts),
attach_mappings = function(prompt_bufnr, map)
local actions = require("telescope.actions")
actions.select_default:replace(function()
actions.close(prompt_bufnr)
local selection = require("telescope.actions.state").get_selected_entry()
set_rust_target(selection[1])
end)
return true
end,
}):find()
end

View File

@ -4,6 +4,7 @@ vim.keymap.set('n', '<leader>fg', telescope.live_grep, {})
vim.keymap.set('n', '<leader>fb', telescope.buffers, {}) vim.keymap.set('n', '<leader>fb', telescope.buffers, {})
vim.keymap.set('n', '<leader>fh', telescope.help_tags, {}) vim.keymap.set('n', '<leader>fh', telescope.help_tags, {})
vim.keymap.set('n', '<leader>fs', telescope.treesitter, {}) -- find symbols vim.keymap.set('n', '<leader>fs', telescope.treesitter, {}) -- find symbols
vim.keymap.set('n', '<leader>ft', pick_rust_target, {}) -- find symbols
vim.keymap.set('n', 'U', ":redo<Enter>", {}) vim.keymap.set('n', 'U', ":redo<Enter>", {})
vim.keymap.set('n', '<leader>p', ":b#<Enter>", {}) -- goto previous buffer vim.keymap.set('n', '<leader>p', ":b#<Enter>", {}) -- goto previous buffer

View File

@ -31,6 +31,8 @@ sudo pacman --needed -S \
noto-fonts-extra \ noto-fonts-extra \
nushell \ nushell \
pamixer \ pamixer \
qt5-wayland \
qt6-wayland \
ripgrep \ ripgrep \
rustup \ rustup \
sad \ sad \