Updated nvim and readme 7cbf7d24
Steve · 2024-01-03 07:55 17 file(s) · +478 −281
README.md +4 −3
1 1
## Steve's Dotfiles
2 2
3 -
Here's a collection of dotfiles that I use regularly on my MacOS development environment. If you want to use them simply copy them to their appropriate locations, majority of them being in `~/.config`. 
3 +
Here's a collection of dotfiles that I use regularly on my MacOS development environment. If you want to use them simply copy them to their appropriate locations, majority of them being in `~/.config`.
4 4
5 5
![screenshot](https://github.com/stevedylandev/dotfiles/blob/5230b7f924e3bb30ef477d99af6bc2f41cd7bce6/assets/screenshot.png)
6 6
7 7
**A few things to be aware of:**
8 +
8 9
- Alcritty is expecting a custom font called [Commit Mono](https://commitmono.com/) which I have included here since it is open source!
9 -
- The color scheme for everything is based off [Tinted Themeing Base16](https://github.com/tinted-theming/base16-shell) which allows you to use the shell to change the color scheme for all the apps used. In the screenshot I am using `base16-black-metal-bathory`.
10 +
- The color scheme for everything is based off [Tinted Themeing Base16](https://github.com/tinted-theming/base16-shell) which allows you to use the shell to change the color scheme for all the apps used. I would recommend installing via the instructions on their repo vs trying to install by cloning this one. In the screenshot I am using `base16-black-metal-bathory`.
10 11
11 -
Feel free to [reach out](mailto:hello@stevedylan.dev) if you have any questions! 
12 +
Feel free to [reach out](mailto:hello@stevedylan.dev) if you have any questions!
nvim/init.lua +8 −9
1 1
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
2 2
if not vim.loop.fs_stat(lazypath) then
3 -
  vim.fn.system({
4 -
    "git",
5 -
    "clone",
6 -
    --filter=blob:none",
7 -
    "https://github.com/folke/lazy.nvim.git",
8 -
    "--branch=stable", -- latest stable release
9 -
    lazypath,
10 -
  })
3 +
	vim.fn.system({
4 +
		"git",
5 +
		"clone",
6 +
		--filter=blob:none",
7 +
		"https://github.com/folke/lazy.nvim.git",
8 +
		"--branch=stable", -- latest stable release
9 +
		lazypath,
10 +
	})
11 11
end
12 12
vim.opt.rtp:prepend(lazypath)
13 -
14 13
require("options")
15 14
require("keymaps")
16 15
require("autocommands")
nvim/lazy-lock.json +32 −28
1 1
{
2 2
  "Comment.nvim": { "branch": "master", "commit": "0236521ea582747b58869cb72f70ccfa967d2e89" },
3 -
  "LuaSnip": { "branch": "master", "commit": "1f4ad8bb72bdeb60975e98652636b991a9b7475d" },
4 -
  "base16-vim": { "branch": "main", "commit": "5b54dcbb679ea208bd0a2d814fae4787a2764c1f" },
3 +
  "LuaSnip": { "branch": "master", "commit": "8ae1dedd988eb56441b7858bd1e8554dfadaa46d" },
4 +
  "base16-vim": { "branch": "main", "commit": "5e94162c37e5612977a23e65a10f88a2c031883d" },
5 +
  "blame.nvim": { "branch": "main", "commit": "562661972085a273914c8f702b11924f8aa573ea" },
5 6
  "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
6 -
  "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" },
7 +
  "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" },
7 8
  "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
8 9
  "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
9 -
  "conform.nvim": { "branch": "master", "commit": "ca3dfba94600aa62bfc88ae37cbd4f17eaea2553" },
10 -
  "dressing.nvim": { "branch": "master", "commit": "fe3071330a0720ce3695ac915820c8134b22d1b0" },
11 -
  "friendly-snippets": { "branch": "main", "commit": "43727c2ff84240e55d4069ec3e6158d74cb534b6" },
12 -
  "gitsigns.nvim": { "branch": "main", "commit": "af0f583cd35286dd6f0e3ed52622728703237e50" },
13 -
  "indent-blankline.nvim": { "branch": "master", "commit": "29be0919b91fb59eca9e90690d76014233392bef" },
10 +
  "conform.nvim": { "branch": "master", "commit": "ad2b5ecd907128ed1b66b1cf4bed57902ef836ee" },
11 +
  "dressing.nvim": { "branch": "master", "commit": "94b0d24483d56f3777ee0c8dc51675f21709318c" },
12 +
  "friendly-snippets": { "branch": "main", "commit": "53d3df271d031c405255e99410628c26a8f0d2b0" },
13 +
  "gitsigns.nvim": { "branch": "main", "commit": "d195f0c35ced5174d3ecce1c4c8ebb3b5bc23fa9" },
14 +
  "indent-blankline.nvim": { "branch": "master", "commit": "5da5546947f3125dfd6aa85ab21074dc83f776d5" },
14 15
  "lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
15 -
  "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" },
16 -
  "mason-lspconfig.nvim": { "branch": "main", "commit": "faeb361507aa1ef1b0e5645781e2aa0d36a4aa84" },
17 -
  "mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
18 -
  "mini.indentscope": { "branch": "main", "commit": "c8fdafa7bf603d758986a27eb546c55a5c73b1a3" },
19 -
  "mini.pairs": { "branch": "main", "commit": "71f117fd57f930da6ef4126b24f594dd398bac26" },
20 -
  "mini.surround": { "branch": "main", "commit": "af8129efcabe95fc08a233e9f91569829bed031f" },
21 -
  "neo-tree.nvim": { "branch": "v3.x", "commit": "f053f09962819c1558cd93639aa80edf7c314c17" },
16 +
  "lazygit.nvim": { "branch": "main", "commit": "1e08e3f5ac1152339690140e61a4a32b3bdc7de5" },
17 +
  "lualine.nvim": { "branch": "master", "commit": "566b7036f717f3d676362742630518a47f132fff" },
18 +
  "mason-lspconfig.nvim": { "branch": "main", "commit": "56e435e09f8729af2d41973e81a0db440f8fe9c9" },
19 +
  "mason.nvim": { "branch": "main", "commit": "a09da6ac634926a299dd439da08bdb547a8ca011" },
20 +
  "mini.indentscope": { "branch": "main", "commit": "5a8369475cd7cd6f207a4d288406d03b0fc48bdb" },
21 +
  "mini.pairs": { "branch": "main", "commit": "552062017ff207e1f35f7028bfb3f27c7421d22d" },
22 +
  "modes.nvim": { "branch": "main", "commit": "3188692abf02a8838ec75e59d68c2ce3e4323f5c" },
23 +
  "neo-tree.nvim": { "branch": "v3.x", "commit": "77d9f484b88fd380386b46ed9206e5374d69d9d8" },
22 24
  "noice.nvim": { "branch": "main", "commit": "92433164e2f7118d4122c7674c3834d9511722ba" },
23 -
  "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" },
25 +
  "none-ls.nvim": { "branch": "main", "commit": "e7382de51b4cf629e56f1fa18192e716e5ba8145" },
26 +
  "nui.nvim": { "branch": "main", "commit": "80445d015d2b5f9af0d9e8bce63d303bc86eda8a" },
24 27
  "nvim-base16": { "branch": "master", "commit": "010bedf0b7c01ab4d4e4e896a8527d97c222351d" },
25 -
  "nvim-cmp": { "branch": "main", "commit": "0b751f6beef40fd47375eaf53d3057e0bfa317e4" },
28 +
  "nvim-cmp": { "branch": "main", "commit": "538e37ba87284942c1d76ed38dd497e54e65b891" },
26 29
  "nvim-colorizer.lua": { "branch": "master", "commit": "36c610a9717cc9ec426a07c8e6bf3b3abcb139d6" },
27 -
  "nvim-lspconfig": { "branch": "master", "commit": "0a0682d4646a6869b85a4e4d0e30da5ef8b11f66" },
28 -
  "nvim-notify": { "branch": "master", "commit": "e4a2022f4fec2d5ebc79afa612f96d8b11c627b3" },
29 -
  "nvim-treesitter": { "branch": "master", "commit": "c0da2013d1cef768c00f3f0b7f365fe19a10bca3" },
30 -
  "nvim-treesitter-textobjects": { "branch": "master", "commit": "dbcd9388e3b119a87c785e10a00d62876077d23d" },
31 -
  "nvim-ts-autotag": { "branch": "main", "commit": "6be1192965df35f94b8ea6d323354f7dc7a557e4" },
32 -
  "nvim-web-devicons": { "branch": "master", "commit": "11eb26fc166742db8d1e8a6f5a7de9df37b09aae" },
33 -
  "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" },
30 +
  "nvim-lsp-file-operations": { "branch": "master", "commit": "8e7223e138590c1bd9d86d3de810e65939d8b12f" },
31 +
  "nvim-lspconfig": { "branch": "master", "commit": "9bedcfed749755e43fc8bed46f85ce2044fe3b77" },
32 +
  "nvim-notify": { "branch": "master", "commit": "ebcdd8219e2a2cbc0a4bef68002f6867f1fde269" },
33 +
  "nvim-surround": { "branch": "main", "commit": "703ec63aa798e5e07d309b35e42def34bebe0174" },
34 +
  "nvim-treesitter": { "branch": "master", "commit": "e49f1e8ef3e8450a8446cb1f2bbb53c919f60b6d" },
35 +
  "nvim-treesitter-textobjects": { "branch": "master", "commit": "0e2d5bd4cbe75849a013901555d436a48c6680cb" },
36 +
  "nvim-ts-autotag": { "branch": "main", "commit": "8515e48a277a2f4947d91004d9aa92c29fdc5e18" },
37 +
  "nvim-web-devicons": { "branch": "master", "commit": "cff25ce621e6d15fae0b0bfe38c00be50ce38468" },
38 +
  "plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" },
34 39
  "smart-open.nvim": { "branch": "0.2.x", "commit": "026091fe7f9b283aa1f5f4bb8c56aa5bcad43dbd" },
35 40
  "sqlite.lua": { "branch": "master", "commit": "b7e28c8463254c46a8e61c52d27d6a2040492fc3" },
36 41
  "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "bc25c56083939f274edcfe395c6ff7de23b67c50" },
37 42
  "telescope-fzf-native.nvim": { "branch": "main", "commit": "6c921ca12321edaa773e324ef64ea301a1d0da62" },
38 43
  "telescope-fzy-native.nvim": { "branch": "master", "commit": "282f069504515eec762ab6d6c89903377252bf5b" },
39 -
  "telescope.nvim": { "branch": "master", "commit": "776b509f80dd49d8205b9b0d94485568236d1192" },
40 -
  "toggleterm.nvim": { "branch": "main", "commit": "faee9d60428afc7857e0927fdc18daa6c409fa64" },
41 -
  "vim-astro": { "branch": "main", "commit": "9b4674ecfe1dd84b5fb9b4de1653975de6e8e2e1" },
44 +
  "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
45 +
  "toggleterm.nvim": { "branch": "main", "commit": "cbd041d91b90cd3c02df03fe6133208888f8e008" },
42 46
  "vim-illuminate": { "branch": "master", "commit": "3bd2ab64b5d63b29e05691e624927e5ebbf0fb86" },
43 47
  "vim-startuptime": { "branch": "master", "commit": "454b3de856b7bd298700de33d79774ca9b9e3875" },
44 -
  "vim-tmux-navigator": { "branch": "master", "commit": "7db70e08ea03b3e4d91f63713d76134512e28d7e" }
48 +
  "vim-tmux-navigator": { "branch": "master", "commit": "38b1d0402c4600543281dc85b3f51884205674b6" }
45 49
}
nvim/lua/keymaps.lua +2 −3
3 3
4 4
-- format
5 5
-- Fast saving
6 -
map("n", "++", ":write!<CR>", opts)
6 +
map("n", "++", "<cmd>write!<CR>", opts)
7 7
8 8
-- Some useful quickfix shortcuts for quickfix
9 9
map("n", "<C-n>", "<cmd>cnext<CR>zz", opts)
19 19
map("i", "jk", "<ESC>", opts)
20 20
21 21
-- Remove search highlight
22 -
map("n", "<Leader>h", ":nohlsearch<CR>", opts)
22 +
map("n", "<leader>h", "<cmd>nohlsearch<CR>", opts)
23 23
24 24
-- Grab text between curly braces
25 25
map("n", "YY", "va{Vy", opts)
45 45
-- map("n", "<C-j>", "<C-w>j", opts)
46 46
-- map("n", "<C-k>", "<C-w>k", opts)
47 47
-- map("n", "<C-l>", "<C-w>l", opts)
48 -
49 48
50 49
-- Visual --
51 50
-- Stay in indent mode
nvim/lua/plugins/blame.lua (added) +6 −0
1 +
return {
2 +
	"FabijanZulj/blame.nvim",
3 +
	config = function()
4 +
		vim.keymap.set("n", "<leader>b", "<cmd>ToggleBlame virtual<CR>", {})
5 +
	end,
6 +
}
nvim/lua/plugins/cmp.lua +43 −90
1 -
return  {
2 -
  {
3 -
  "L3MON4D3/LuaSnip",
1 +
return {
2 +
  "hrsh7th/nvim-cmp",
3 +
  version = false, -- last release is way too old
4 +
  event = "InsertEnter",
4 5
  dependencies = {
5 -
    "rafamadriz/friendly-snippets",
6 -
    config = function()
7 -
      require("luasnip.loaders.from_vscode").lazy_load()
8 -
    end,
9 -
  },
10 -
  opts = {
11 -
    history = true,
12 -
    delete_check_events = "TextChanged",
13 -
  },
14 -
  -- stylua: ignore
15 -
  keys = {
16 -
    {
17 -
      "<tab>",
18 -
      function()
19 -
        return require("luasnip").jumpable(1) and "<Plug>luasnip-jump-next" or "<tab>"
20 -
      end,
21 -
      expr = true, silent = true, mode = "i",
22 -
    },
23 -
    { "<tab>", function() require("luasnip").jump(1) end, mode = "s" },
24 -
    { "<s-tab>", function() require("luasnip").jump(-1) end, mode = { "i", "s" } },
25 -
  },
26 -
  }, 
27 -
    {
28 -
    "hrsh7th/nvim-cmp",
29 -
    version = false, -- last release is way too old
30 -
    event = "InsertEnter",
31 -
    dependencies = {
32 -
      "hrsh7th/cmp-nvim-lsp",
33 -
      "hrsh7th/cmp-buffer",
34 -
      "hrsh7th/cmp-path",
35 -
      "saadparwaiz1/cmp_luasnip",
36 -
    },
37 -
    opts = function()
38 -
      vim.api.nvim_set_hl(0, "CmpGhostText", { link = "Comment", default = true })
39 -
      local cmp = require("cmp")
40 -
      local defaults = require("cmp.config.default")()
41 -
      return {
42 -
        completion = {
43 -
          completeopt = "menu,menuone,noinsert",
44 -
        },
45 -
        snippet = {
46 -
          expand = function(args)
47 -
            require("luasnip").lsp_expand(args.body)
48 -
          end,
49 -
        },
50 -
        mapping = cmp.mapping.preset.insert({
51 -
          ["<C-n>"] = cmp.mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }),
52 -
          ["<C-p>"] = cmp.mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }),
53 -
          ["<C-b>"] = cmp.mapping.scroll_docs(-4),
54 -
          ["<C-f>"] = cmp.mapping.scroll_docs(4),
55 -
          ["<C-Space>"] = cmp.mapping.complete(),
56 -
          ["<C-e>"] = cmp.mapping.abort(),
57 -
          ["<CR>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
58 -
          ["<S-CR>"] = cmp.mapping.confirm({
59 -
            behavior = cmp.ConfirmBehavior.Replace,
60 -
            select = true,
61 -
          }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
62 -
          ["<C-CR>"] = function(fallback)
63 -
            cmp.abort()
64 -
            fallback()
65 -
          end,
66 -
        }),
67 -
        sources = cmp.config.sources({
68 -
          { name = "nvim_lsp" },
69 -
          { name = "luasnip" },
70 -
          { name = "path" },
71 -
        }, {
72 -
          { name = "buffer" },
73 -
        }),
74 -
        experimental = {
75 -
          ghost_text = {
76 -
            hl_group = "CmpGhostText",
77 -
          },
78 -
        },
79 -
        sorting = defaults.sorting,
80 -
      }
81 -
    end,
82 -
    ---@param opts cmp.ConfigSchema
83 -
    config = function(_, opts)
84 -
      for _, source in ipairs(opts.sources) do
85 -
        source.group_index = source.group_index or 1
86 -
      end
87 -
      require("cmp").setup(opts)
88 -
    end,
89 -
  },
90 -
    {
91 6
    "hrsh7th/cmp-nvim-lsp",
92 7
    "hrsh7th/cmp-buffer",
93 8
    "hrsh7th/cmp-path",
94 9
    "saadparwaiz1/cmp_luasnip",
95 -
  }
10 +
    "L3MON4D3/LuaSnip",
11 +
    "rafamadriz/friendly-snippets",
12 +
  },
13 +
  config = function()
14 +
    local cmp = require("cmp")
15 +
16 +
    local luasnip = require("luasnip")
17 +
18 +
    require("luasnip.loaders.from_vscode").lazy_load()
19 +
20 +
    cmp.setup({
21 +
      completion = {
22 +
        completeopt = "menu,menuone,preview,noselect",
23 +
      },
24 +
      snippet = {
25 +
        expand = function(args)
26 +
          luasnip.lsp_expand(args.body)
27 +
        end,
28 +
      },
29 +
      window = {
30 +
        completion = cmp.config.window.bordered(),
31 +
        documentaton = cmp.config.window.bordered(),
32 +
      },
33 +
      mapping = cmp.mapping.preset.insert({
34 +
        ["<C-k>"] = cmp.mapping.select_prev_item(),
35 +
        ["<C-j>"] = cmp.mapping.select_next_item(),
36 +
        ["<C-b>"] = cmp.mapping.scroll_docs(-4),
37 +
        ["<C-f>"] = cmp.mapping.scroll_docs(4),
38 +
        ["<C-Space>"] = cmp.mapping.complete(),
39 +
        ["<CR>"] = cmp.mapping.confirm({ select = false }),
40 +
      }),
41 +
      sources = cmp.config.sources({
42 +
        { name = "nvim_lsp" },
43 +
        { name = "luasnip" },
44 +
        { name = "buffer" },
45 +
        { name = "path" },
46 +
      }),
47 +
    })
48 +
  end,
96 49
}
nvim/lua/plugins/dressing.lua +4 −14
1 1
return {
2 -
  "stevearc/dressing.nvim",
3 -
  lazy = true,
4 -
  init = function()
5 -
    ---@diagnostic disable-next-line: duplicate-set-field
6 -
    vim.ui.select = function(...)
7 -
      require("lazy").load({ plugins = { "dressing.nvim" } })
8 -
      return vim.ui.select(...)
9 -
    end
10 -
    ---@diagnostic disable-next-line: duplicate-set-field
11 -
    vim.ui.input = function(...)
12 -
      require("lazy").load({ plugins = { "dressing.nvim" } })
13 -
      return vim.ui.input(...)
14 -
    end
15 -
  end,
2 +
	"stevearc/dressing.nvim",
3 +
	config = function()
4 +
		require("dressing").setup()
5 +
	end,
16 6
}
nvim/lua/plugins/lazygit.lua (added) +15 −0
1 +
return {
2 +
  "kdheepak/lazygit.nvim",
3 +
  config = function()
4 +
    require("lazy").setup({
5 +
      {
6 +
        "kdheepak/lazygit.nvim",
7 +
        -- optional for floating window border decoration
8 +
        dependencies = {
9 +
          "nvim-lua/plenary.nvim",
10 +
        },
11 +
      },
12 +
    })
13 +
    vim.keymap.set("n", "<leader>lg", "<cmd>LazyGit<CR>", {})
14 +
  end,
15 +
}
nvim/lua/plugins/lsp-config.lua +197 −28
1 1
return {
2 -
  {
3 -
    "williamboman/mason.nvim",
4 -
    lazy = false,
5 -
    config = function()
6 -
      require("mason").setup()
7 -
    end
8 -
  },
9 -
  {
10 -
    "williamboman/mason-lspconfig.nvim",
11 -
    config = function()
12 -
      require("mason-lspconfig").setup({
13 -
        ensure_installed = { "lua_ls", "tsserver" }
14 -
      })
15 -
    end
16 -
  },
17 -
  {
18 -
    "neovim/nvim-lspconfig",
19 -
    lazy = false,
20 -
    config = function()
21 -
      local lspconfig = require("lspconfig")
22 -
      lspconfig.tsserver.setup({})
23 -
      lspconfig.lua_ls.setup({})
2 +
	{
3 +
		"williamboman/mason.nvim",
4 +
		lazy = false,
5 +
		config = function()
6 +
			require("mason").setup()
7 +
		end,
8 +
	},
9 +
	{
10 +
		"williamboman/mason-lspconfig.nvim",
11 +
		config = function()
12 +
			require("mason-lspconfig").setup({
13 +
				ensure_installed = {
14 +
					"lua_ls",
15 +
					"tsserver",
16 +
					"solidity",
17 +
					"html",
18 +
					"cssls",
19 +
					"emmet_ls",
20 +
					"tailwindcss",
21 +
					"svelte",
22 +
					"pyright",
23 +
					"gopls",
24 +
				},
25 +
				automatic_installation = true,
26 +
			})
27 +
		end,
28 +
	},
29 +
	{
30 +
		"neovim/nvim-lspconfig",
31 +
		event = { "BufReadPre", "BufNewFile" },
32 +
		dependencies = {
33 +
			"hrsh7th/cmp-nvim-lsp",
34 +
			{ "antosha417/nvim-lsp-file-operations", config = true },
35 +
		},
36 +
		config = function()
37 +
			-- import lspconfig plugin
38 +
			local lspconfig = require("lspconfig")
39 +
40 +
			-- import cmp-nvim-lsp plugin
41 +
			local cmp_nvim_lsp = require("cmp_nvim_lsp")
42 +
43 +
			local keymap = vim.keymap -- for conciseness
44 +
45 +
			local opts = { noremap = true, silent = true }
46 +
			local on_attach = function(client, bufnr)
47 +
				opts.buffer = bufnr
48 +
49 +
				-- set keybinds
50 +
				opts.desc = "Show LSP references"
51 +
				keymap.set("n", "gR", "<cmd>Telescope lsp_references<CR>", opts) -- show definition, references
52 +
53 +
				opts.desc = "Go to declaration"
54 +
				keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration
55 +
56 +
				opts.desc = "Show LSP definitions"
57 +
				keymap.set("n", "gd", "<cmd>Telescope lsp_definitions<CR>", opts) -- show lsp definitions
58 +
59 +
				opts.desc = "Show LSP implementations"
60 +
				keymap.set("n", "gi", "<cmd>Telescope lsp_implementations<CR>", opts) -- show lsp implementations
61 +
62 +
				opts.desc = "Show LSP type definitions"
63 +
				keymap.set("n", "gt", "<cmd>Telescope lsp_type_definitions<CR>", opts) -- show lsp type definitions
64 +
65 +
				opts.desc = "See available code actions"
66 +
				keymap.set({ "n", "v" }, "<leader>ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection
67 +
68 +
				opts.desc = "Smart rename"
69 +
				keymap.set("n", "<leader>rn", vim.lsp.buf.rename, opts) -- smart rename
70 +
71 +
				opts.desc = "Show buffer diagnostics"
72 +
				keymap.set("n", "<leader>D", "<cmd>Telescope diagnostics bufnr=0<CR>", opts) -- show  diagnostics for file
73 +
74 +
				opts.desc = "Show line diagnostics"
75 +
				keymap.set("n", "<leader>d", vim.diagnostic.open_float, opts) -- show diagnostics for line
76 +
77 +
				opts.desc = "Go to previous diagnostic"
78 +
				keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer
79 +
80 +
				opts.desc = "Go to next diagnostic"
81 +
				keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer
82 +
83 +
				opts.desc = "Show documentation for what is under cursor"
84 +
				keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor
85 +
86 +
				opts.desc = "Restart LSP"
87 +
				keymap.set("n", "<leader>rs", ":LspRestart<CR>", opts) -- mapping to restart lsp if necessary
88 +
			end
89 +
90 +
			-- used to enable autocompletion (assign to every lsp server config)
91 +
			local capabilities = cmp_nvim_lsp.default_capabilities()
92 +
93 +
			-- Change the Diagnostic symbols in the sign column (gutter)
94 +
			-- (not in youtube nvim video)
95 +
			local signs = { Error = " ", Warn = " ", Hint = "󰠠 ", Info = " " }
96 +
			for type, icon in pairs(signs) do
97 +
				local hl = "DiagnosticSign" .. type
98 +
				vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
99 +
			end
100 +
101 +
			-- configure html server
102 +
			lspconfig["html"].setup({
103 +
				capabilities = capabilities,
104 +
				on_attach = on_attach,
105 +
			})
106 +
107 +
			-- configure typescript server with plugin
108 +
			lspconfig["tsserver"].setup({
109 +
				capabilities = capabilities,
110 +
				on_attach = on_attach,
111 +
			})
112 +
113 +
			-- configure css server
114 +
			lspconfig["cssls"].setup({
115 +
				capabilities = capabilities,
116 +
				on_attach = on_attach,
117 +
			})
24 118
25 -
      vim.keymap.set('n', 'K', vim.lsp.buf.hover, {})
26 -
      vim.keymap.set('n', '<leader>gd', vim.lsp.buf.definition, {})
27 -
      vim.keymap.set('n', '<leader>gr', vim.lsp.buf.references, {})
28 -
      vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, {})
29 -
    end
30 -
  }
119 +
			-- configure tailwindcss server
120 +
			lspconfig["tailwindcss"].setup({
121 +
				capabilities = capabilities,
122 +
				on_attach = on_attach,
123 +
			})
124 +
125 +
			lspconfig["gopls"].setup({
126 +
				capabilities = capabilities,
127 +
				on_attach = on_attach,
128 +
			})
129 +
130 +
			lspconfig["solidity"].setup({
131 +
				capabilities = capabilities,
132 +
				on_attach = on_attach,
133 +
			})
134 +
135 +
			-- configure svelte server
136 +
			lspconfig["svelte"].setup({
137 +
				capabilities = capabilities,
138 +
				on_attach = function(client, bufnr)
139 +
					on_attach(client, bufnr)
140 +
141 +
					vim.api.nvim_create_autocmd("BufWritePost", {
142 +
						pattern = { "*.js", "*.ts" },
143 +
						callback = function(ctx)
144 +
							if client.name == "svelte" then
145 +
								client.notify("$/onDidChangeTsOrJsFile", { uri = ctx.file })
146 +
							end
147 +
						end,
148 +
					})
149 +
				end,
150 +
			})
151 +
152 +
			-- configure prisma orm server
153 +
			lspconfig["prismals"].setup({
154 +
				capabilities = capabilities,
155 +
				on_attach = on_attach,
156 +
			})
157 +
158 +
			-- configure graphql language server
159 +
			lspconfig["graphql"].setup({
160 +
				capabilities = capabilities,
161 +
				on_attach = on_attach,
162 +
				filetypes = { "graphql", "gql", "svelte", "typescriptreact", "javascriptreact" },
163 +
			})
164 +
165 +
			-- configure emmet language server
166 +
			lspconfig["emmet_ls"].setup({
167 +
				capabilities = capabilities,
168 +
				on_attach = on_attach,
169 +
				filetypes = { "html", "typescriptreact", "javascriptreact", "css", "sass", "scss", "less", "svelte" },
170 +
			})
171 +
172 +
			-- configure python server
173 +
			lspconfig["pyright"].setup({
174 +
				capabilities = capabilities,
175 +
				on_attach = on_attach,
176 +
			})
177 +
178 +
			-- configure lua server (with special settings)
179 +
			lspconfig["lua_ls"].setup({
180 +
				capabilities = capabilities,
181 +
				on_attach = on_attach,
182 +
				settings = { -- custom settings for lua
183 +
					Lua = {
184 +
						-- make the language server recognize "vim" global
185 +
						diagnostics = {
186 +
							globals = { "vim" },
187 +
						},
188 +
						workspace = {
189 +
							-- make language server aware of runtime files
190 +
							library = {
191 +
								[vim.fn.expand("$VIMRUNTIME/lua")] = true,
192 +
								[vim.fn.stdpath("config") .. "/lua"] = true,
193 +
							},
194 +
						},
195 +
					},
196 +
				},
197 +
			})
198 +
		end,
199 +
	},
31 200
}
nvim/lua/plugins/modes.lua (added) +14 −0
1 +
return {
2 +
  "mvllow/modes.nvim",
3 +
  tag = "v0.2.0",
4 +
  config = function()
5 +
    require("modes").setup({
6 +
      colors = {
7 +
        copy = vim.g.terminal_color_2,
8 +
        delete = vim.g.terminal_color_1,
9 +
        visual = vim.g.terminal_color_3,
10 +
        insert = vim.g.terminal_color_6,
11 +
      },
12 +
    })
13 +
  end,
14 +
}
nvim/lua/plugins/neotree.lua +32 −11
11 11
		local opts = { noremap = true, silent = true }
12 12
		local map = vim.api.nvim_set_keymap
13 13
		map("n", "<leader>e", ":Neotree toggle<CR>", opts)
14 -
        require("neo-tree").setup({
15 -
      popup_border_style = "rounded",
16 -
      window = {
17 -
        position = "float",
18 -
      },
19 -
      filesystem = {
20 -
        filtered_items = {
21 -
          hide_dotfiles = false,
22 -
        },
23 -
      },
24 -
    })
14 +
		require("neo-tree").setup({
15 +
			popup_border_style = "rounded",
16 +
			enable_git_status = true,
17 +
			window = {
18 +
				position = "float",
19 +
			},
20 +
			filesystem = {
21 +
				filtered_items = {
22 +
					hide_dotfiles = false,
23 +
					always_show = {
24 +
						"*.env",
25 +
					},
26 +
				},
27 +
			},
28 +
			default_component_configs = {
29 +
				git_status = {
30 +
					symbols = {
31 +
						-- Change type
32 +
						added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name
33 +
						modified = "", -- or "", but this is redundant info if you use git_status_colors on the name
34 +
						deleted = "✖", -- this can only be used in the git_status source
35 +
						renamed = "󰁕", -- this can only be used in the git_status source
36 +
						-- Status type
37 +
						untracked = "",
38 +
						ignored = "",
39 +
						unstaged = "󰄱",
40 +
						staged = "",
41 +
						conflict = "",
42 +
					},
43 +
				},
44 +
			},
45 +
		})
25 46
	end,
26 47
}
nvim/lua/plugins/none-ls.lua (added) +16 −0
1 +
return {
2 +
  "nvimtools/none-ls.nvim",
3 +
  config = function()
4 +
    local null_ls = require("null-ls")
5 +
6 +
    null_ls.setup({
7 +
      sources = {
8 +
        null_ls.builtins.formatting.stylua,
9 +
        null_ls.builtins.formatting.prettier,
10 +
        null_ls.builtins.diagnostics.eslint,
11 +
      },
12 +
    })
13 +
14 +
    vim.keymap.set("n", "<leader>lf", vim.lsp.buf.format, {})
15 +
  end,
16 +
}
nvim/lua/plugins/nvim-notify.lua +24 −25
1 1
return {
2 -
  "rcarriga/nvim-notify",
3 -
  keys = {
4 -
    {
5 -
      "<leader>h",
6 -
      function()
7 -
        require("notify").dismiss({ silent = true, pending = true })
8 -
      end,
9 -
      desc = "Dismiss all Notifications",
10 -
    },
11 -
  },
12 -
  opts = {
13 -
    render = "minimal",
14 -
    animation_style = "fade",
15 -
    background_colour = "#1E2021",
16 -
    timeout = 2000,
17 -
    max_height = function()
18 -
      return math.floor(vim.o.lines * 0.75)
19 -
    end,
20 -
    max_width = function()
21 -
      return math.floor(vim.o.columns * 0.75)
22 -
    end,
23 -
  },
24 -
  init = function()
25 -
    vim.notify = require("notify")
26 -
  end,
2 +
	"rcarriga/nvim-notify",
3 +
	keys = {
4 +
		{
5 +
			"<leader>hh",
6 +
			function()
7 +
				require("notify").dismiss({ silent = true, pending = true })
8 +
			end,
9 +
			desc = "Dismiss all Notifications",
10 +
		},
11 +
	},
12 +
	config = function()
13 +
		require("notify").setup({
14 +
			render = "compact",
15 +
			stages = "fade",
16 +
			timeout = 500,
17 +
			max_height = function()
18 +
				return math.floor(vim.o.lines * 0.75)
19 +
			end,
20 +
			max_width = function()
21 +
				return math.floor(vim.o.columns * 0.75)
22 +
			end,
23 +
		})
24 +
		vim.notify = require("notify")
25 +
	end,
27 26
}
nvim/lua/plugins/surround.lua (added) +9 −0
1 +
return {
2 +
  "kylechui/nvim-surround",
3 +
  version = "*", -- Use for stability; omit to use `main` branch for the latest features
4 +
  config = function()
5 +
    require("nvim-surround").setup({
6 +
      -- Configuration here, or leave empty to use defaults
7 +
    })
8 +
  end
9 +
}
nvim/lua/plugins/tineted-theming.lua +12 −12
1 -
return { 
2 -
  "tinted-theming/base16-vim",
3 -
  priority = 1000,
4 -
  config = function()
5 -
    local cmd = vim.cmd
6 -
    local g = vim.g
7 -
    local current_theme_name = os.getenv('BASE16_THEME')
8 -
    if current_theme_name and g.colors_name ~= 'base16-'..current_theme_name then
9 -
      cmd('let base16colorspace=256')
10 -
      cmd('colorscheme base16-'..current_theme_name)
11 -
    end
12 -
  end
1 +
return {
2 +
	"tinted-theming/base16-vim",
3 +
	priority = 1000,
4 +
	config = function()
5 +
		local cmd = vim.cmd
6 +
		local g = vim.g
7 +
		local current_theme_name = os.getenv("BASE16_THEME")
8 +
		if current_theme_name and g.colors_name ~= "base16-" .. current_theme_name then
9 +
			cmd("let base16colorspace=256")
10 +
			cmd("colorscheme base16-" .. current_theme_name)
11 +
		end
12 +
	end,
13 13
}
nvim/lua/plugins/tmux-navigator.lua +5 −5
1 1
return {
2 2
  "christoomey/vim-tmux-navigator",
3 3
  config = function()
4 -
    vim.keymap.set("n", "<C-h>", ":TmuxNavigateLeft<CR>", opts)
5 -
    vim.keymap.set("n", "<C-j>", ":TmuxNavigateDown<CR>", opts)
6 -
    vim.keymap.set("n", "<C-k>", ":TmuxNavigateUp<CR>", opts)
7 -
    vim.keymap.set("n", "<C-l>", ":TmuxNavigateRight<CR>", opts)
8 -
  end
4 +
    vim.keymap.set("n", "<C-h>", "<cmd>TmuxNavigateLeft<CR>", opts)
5 +
    vim.keymap.set("n", "<C-j>", "<cmd>TmuxNavigateDown<CR>", opts)
6 +
    vim.keymap.set("n", "<C-k>", "<cmd>TmuxNavigateUp<CR>", opts)
7 +
    vim.keymap.set("n", "<C-l>", "<cmd>TmuxNavigateRight<CR>", opts)
8 +
  end,
9 9
}
nvim/lua/plugins/treesitter.lua +55 −53
1 1
return {
2 -
  {
3 -
  "nvim-treesitter/nvim-treesitter",
4 -
  build = ":TSUpdate",
5 -
  event = { "BufReadPre", "BufNewFile" },
6 -
  dependencies = {
7 -
    "nvim-treesitter/nvim-treesitter-textobjects",
8 -
  },
9 -
  config = function()
10 -
    local treesitter = require("nvim-treesitter.configs")
2 +
	{
3 +
		"nvim-treesitter/nvim-treesitter",
4 +
		build = ":TSUpdate",
5 +
		event = { "BufReadPre", "BufNewFile" },
6 +
		dependencies = {
7 +
			"nvim-treesitter/nvim-treesitter-textobjects",
8 +
		},
9 +
		config = function()
10 +
			local treesitter = require("nvim-treesitter.configs")
11 11
12 -
    -- configure treesitter
13 -
    treesitter.setup({ -- enable syntax highlighting
14 -
      highlight = {
15 -
        enable = true,
16 -
      },
17 -
      -- enable indentation
18 -
      indent = { enable = true },
19 -
      -- ensure these language parsers are installed
20 -
      ensure_installed = {
21 -
        "json",
22 -
        "javascript",
23 -
        "typescript",
24 -
        "tsx",
25 -
        "yaml",
26 -
        "html",
27 -
        "css",
28 -
        "prisma",
29 -
        "markdown",
30 -
        "markdown_inline",
31 -
        "svelte",
32 -
        "graphql",
33 -
        "bash",
34 -
        "lua",
35 -
        "vim",
36 -
        "dockerfile",
37 -
        "gitignore",
38 -
        "query",
39 -
      },
40 -
      incremental_selection = {
41 -
        enable = true,
42 -
        keymaps = {
43 -
          init_selection = "<C-space>",
44 -
          node_incremental = "<C-space>",
45 -
          scope_incremental = false,
46 -
          node_decremental = "<bs>",
47 -
        },
48 -
      },
49 -
    })
50 -
  end,
51 -
}, 
52 -
  {
53 -
    "windwp/nvim-ts-autotag",
54 -
    opts = {},
55 -
  },
12 +
			-- configure treesitter
13 +
			treesitter.setup({ -- enable syntax highlighting
14 +
				highlight = {
15 +
					enable = true,
16 +
				},
17 +
				auto_install = true,
18 +
19 +
				-- enable indentation
20 +
				indent = { enable = true },
21 +
				-- ensure these language parsers are installed
22 +
				ensure_installed = {
23 +
					"json",
24 +
					"javascript",
25 +
					"typescript",
26 +
					"tsx",
27 +
					"yaml",
28 +
					"html",
29 +
					"css",
30 +
					"prisma",
31 +
					"markdown",
32 +
					"markdown_inline",
33 +
					"svelte",
34 +
					"graphql",
35 +
					"bash",
36 +
					"lua",
37 +
					"vim",
38 +
					"dockerfile",
39 +
					"gitignore",
40 +
					"query",
41 +
				},
42 +
				incremental_selection = {
43 +
					enable = true,
44 +
					keymaps = {
45 +
						init_selection = "<C-space>",
46 +
						node_incremental = "<C-space>",
47 +
						scope_incremental = false,
48 +
						node_decremental = "<bs>",
49 +
					},
50 +
				},
51 +
			})
52 +
		end,
53 +
	},
54 +
	{
55 +
		"windwp/nvim-ts-autotag",
56 +
		opts = {},
57 +
	},
56 58
}