From 008b353e29831b746db211a5677a51ff69383579 Mon Sep 17 00:00:00 2001 From: Luke Tidd Date: Tue, 16 May 2023 22:54:24 -0400 Subject: [PATCH] init nvchad, mostly rust --- chadrc.lua | 5 +++ configs/lspconfig.lua | 20 ++++++++++++ configs/rust-tools.lua | 11 +++++++ mappings.lua | 14 ++++++++ plugins.lua | 72 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 122 insertions(+) create mode 100644 chadrc.lua create mode 100644 configs/lspconfig.lua create mode 100644 configs/rust-tools.lua create mode 100644 mappings.lua create mode 100644 plugins.lua diff --git a/chadrc.lua b/chadrc.lua new file mode 100644 index 0000000..d614e87 --- /dev/null +++ b/chadrc.lua @@ -0,0 +1,5 @@ +---@type ChadrcConfig + local M = {} + M.ui = {theme = 'catppuccin'} + M.plugins = 'custom.plugins' + return M diff --git a/configs/lspconfig.lua b/configs/lspconfig.lua new file mode 100644 index 0000000..cf23c49 --- /dev/null +++ b/configs/lspconfig.lua @@ -0,0 +1,20 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach +local capabilities = require("plugins.configs.lspconfig").capabilities +local lspconfig = require("lspconfig") +local util = require "lspconfig/util" + +--[[ +lspconfig.rust_analyzer.setup({ + on_attach = on_attach, + capabilities = capabilities, + filetypes = {"rust"}, + root_dir = util.root_pattern("Cargo.toml"), + settings = { + ['rust-analyzer'] = { + cargo = { + allFeatures = true, + }, + }, + }, +}) +]]-- diff --git a/configs/rust-tools.lua b/configs/rust-tools.lua new file mode 100644 index 0000000..0b1ba6a --- /dev/null +++ b/configs/rust-tools.lua @@ -0,0 +1,11 @@ +local on_attach = require("plugins.configs.lspconfig").on_attach() +local capabilities = require("plugins.configs.lspconfig").capabilities + +local options = { + server = { + on_attach = on_attach, + capabilities = capabilities, + } +} + +return options diff --git a/mappings.lua b/mappings.lua new file mode 100644 index 0000000..ec3c4f7 --- /dev/null +++ b/mappings.lua @@ -0,0 +1,14 @@ +local M = {} + +M.crates = { + n = { + ["rcu"] = { + function () + require('crates').upgrade_all_crates() + end, + "update crates" + } + } +} + +return M diff --git a/plugins.lua b/plugins.lua new file mode 100644 index 0000000..dd00c58 --- /dev/null +++ b/plugins.lua @@ -0,0 +1,72 @@ +local plugins = { + { + "williamboman/mason.nvim", + opts = { + ensure_installed = { + "rust-analyzer", + "gopls", + "python-lsp-server", + "ruby-lsp", + "shellcheck", + "yaml-language-server", + "yamlfix", + "yamlfmt", + "yamllint", + "json-lsp", + "json-to-struct", + "jsonlint", + }, + }, + }, + { + "neovim/nvim-lspconfig", + config = function() + require "plugins.configs.lspconfig" + require "custom.configs.lspconfig" + end, + }, + { + "rust-lang/rust.vim", + ft = "rust", + init = function () + vim.g.rustfmt_autosave = 1 + end + }, + { + "simrat39/rust-tools.nvim", + rf = "rust", + dependancies = "neovim/nvim-lspconfig", + opts = function () + return require "custom.configs.rust-tools" + end, + config = function(_, opts) + require('rust-tools').setup(opts) + end + }, + { + "mfussenegger/nvim-dap", + rf = "rust", + config = function() + require('nvim-dap').setup() + end + }, + { + "saecki/crates.nvim", + ft = {"rust", "toml"}, + config = function(_, opts) + local crates = require("crates") + crates.setup(opts) + crates.show() + end, + }, + { + "hrsh7th/nvim-cmp", + opts = function() + local M = require "plugins.configs.cmp" + table.insert(M.sources, {name = "crates"}) + return M + end, + } +} + +return plugins