Something went wrong. Try again.
NixOS configuration
Something went wrong. Try again.
5.4 kB · 197 lines
Lua
at sway
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198-- since this is just an example spec, don't actually load anything here and return an empty spec-- stylua: ignoreif true then return {} end
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim---- In your plugin files, you can:-- * add extra plugins-- * disable/enabled LazyVim plugins-- * override the configuration of LazyVim pluginsreturn { -- add gruvbox { "ellisonleao/gruvbox.nvim" },
-- Configure LazyVim to load gruvbox { "LazyVim/LazyVim", opts = { colorscheme = "gruvbox", }, },
-- change trouble config { "folke/trouble.nvim", -- opts will be merged with the parent spec opts = { use_diagnostic_signs = true }, },
-- disable trouble { "folke/trouble.nvim", enabled = false },
-- override nvim-cmp and add cmp-emoji { "hrsh7th/nvim-cmp", dependencies = { "hrsh7th/cmp-emoji" }, ---@param opts cmp.ConfigSchema opts = function(_, opts) table.insert(opts.sources, { name = "emoji" }) end, },
-- change some telescope options and a keymap to browse plugin files { "nvim-telescope/telescope.nvim", keys = { -- add a keymap to browse plugin files -- stylua: ignore { "<leader>fp", function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, desc = "Find Plugin File", }, }, -- change some options opts = { defaults = { layout_strategy = "horizontal", layout_config = { prompt_position = "top" }, sorting_strategy = "ascending", winblend = 0, }, }, },
-- add pyright to lspconfig { "neovim/nvim-lspconfig", ---@class PluginLspOpts opts = { ---@type lspconfig.options servers = { -- pyright will be automatically installed with mason and loaded with lspconfig pyright = {}, }, }, },
-- add tsserver and setup with typescript.nvim instead of lspconfig { "neovim/nvim-lspconfig", dependencies = { "jose-elias-alvarez/typescript.nvim", init = function() require("lazyvim.util").lsp.on_attach(function(_, buffer) -- stylua: ignore vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) end) end, }, ---@class PluginLspOpts opts = { ---@type lspconfig.options servers = { -- tsserver will be automatically installed with mason and loaded with lspconfig tsserver = {}, }, -- you can do any additional lsp server setup here -- return true if you don't want this server to be setup with lspconfig ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?> setup = { -- example to setup with typescript.nvim tsserver = function(_, opts) require("typescript").setup({ server = opts }) return true end, -- Specify * to use this function as a fallback for any server -- ["*"] = function(server, opts) end, }, }, },
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig, -- treesitter, mason and typescript.nvim. So instead of the above, you can use: -- { import = "lazyvim.plugins.extras.lang.typescript" },
-- add more treesitter parsers -- { -- "nvim-treesitter/nvim-treesitter", -- opts = { -- ensure_installed = { -- "bash", -- "html", -- "javascript", -- "json", -- "lua", -- "markdown", -- "markdown_inline", -- "python", -- "query", -- "regex", -- "tsx", -- "typescript", -- "vim", -- "yaml", -- }, -- }, -- },
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above -- would overwrite `ensure_installed` with the new value. -- If you'd rather extend the default config, use the code below instead: { "nvim-treesitter/nvim-treesitter", opts = function(_, opts) -- add tsx and treesitter vim.list_extend(opts.ensure_installed, { "tsx", "typescript", }) end, },
-- the opts function can also be used to change the default opts: { "nvim-lualine/lualine.nvim", event = "VeryLazy", opts = function(_, opts) table.insert(opts.sections.lualine_x, { function() return "😄" end, }) end, },
-- or you can return new options to override all the defaults { "nvim-lualine/lualine.nvim", event = "VeryLazy", opts = function() return { --[[add your custom lualine config here]] } end, },
-- use mini.starter instead of alpha { import = "lazyvim.plugins.extras.ui.mini-starter" },
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc { import = "lazyvim.plugins.extras.lang.json" },
-- add any tools you want to have installed below { "williamboman/mason.nvim", opts = { ensure_installed = { "stylua", "shellcheck", "shfmt", "flake8", }, }, },}