Sfoglia il codice sorgente

forgot some things for my editor

Zander Hawke 1 anno fa
parent
commit
24699b6a7d
3 ha cambiato i file con 187 aggiunte e 16 eliminazioni
  1. 15 15
      flake.lock
  2. 164 0
      users/thomas/nvim/lsp.nix
  3. 8 1
      users/thomas/nvim/plugins.nix

+ 15 - 15
flake.lock

@@ -151,11 +151,11 @@
         ]
       },
       "locked": {
-        "lastModified": 1737630279,
-        "narHash": "sha256-wJQCxyMRc4P26zDrHmZiRD5bbfcJpqPG3e2djdGG3pk=",
+        "lastModified": 1737704314,
+        "narHash": "sha256-zta8jvOQ2wRCZmiwFEnS5iCulWAh8e+fLUlQxrgOBjM=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "0db5c8bfcce78583ebbde0b2abbc95ad93445f7c",
+        "rev": "a0428685572b134f6594e7d7f5db5e1febbab2d7",
         "type": "github"
       },
       "original": {
@@ -215,11 +215,11 @@
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1737569578,
-        "narHash": "sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB+f3M=",
+        "lastModified": 1737672001,
+        "narHash": "sha256-YnHJJ19wqmibLQdUeq9xzE6CjrMA568KN/lFPuSVs4I=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "47addd76727f42d351590c905d9d1905ca895b82",
+        "rev": "035f8c0853c2977b24ffc4d0a42c74f00b182cd8",
         "type": "github"
       },
       "original": {
@@ -231,11 +231,11 @@
     },
     "nixpkgs-darwin": {
       "locked": {
-        "lastModified": 1737604399,
-        "narHash": "sha256-6mhxTomwwim6OrUXnXzsbIEdNdUXPF4F2+sXf1MrXPw=",
+        "lastModified": 1737728197,
+        "narHash": "sha256-Ltd3Ov3awL2OWS69Dm+6dRLpm1UdMuvQzF9GgfOyz30=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "be24912af5998c5298b827d5304462e16d27215d",
+        "rev": "8e39f04b54a435f14b9c1d6a6caede0a0a9825b6",
         "type": "github"
       },
       "original": {
@@ -247,11 +247,11 @@
     },
     "nixpkgs-unstable": {
       "locked": {
-        "lastModified": 1737557748,
-        "narHash": "sha256-BaMuhctP1x00+8cBE2cJveJQb70/tWHI50MHj/ZrtOY=",
+        "lastModified": 1737717945,
+        "narHash": "sha256-ET91TMkab3PmOZnqiJQYOtSGvSTvGeHoegAv4zcTefM=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "606996d74f6e2a12635d41c1bf58bfc7ea3bb5ec",
+        "rev": "ecd26a469ac56357fd333946a99086e992452b6a",
         "type": "github"
       },
       "original": {
@@ -276,11 +276,11 @@
         "treefmt-nix": "treefmt-nix"
       },
       "locked": {
-        "lastModified": 1737667561,
-        "narHash": "sha256-BKUapQPTji3V2uxymGq62/UWF1XMjfHvKd565jj1HlA=",
+        "lastModified": 1737735875,
+        "narHash": "sha256-uZpZbT5kH7whiMpaMQjSPxRbRTmH5LaoBat6eQBHHaY=",
         "owner": "nix-community",
         "repo": "nixvim",
-        "rev": "aab2b81792567237c104b90c3936e073d28a9ac6",
+        "rev": "bd3184f4957d5484bb5ebef4b9bc6f9cc53cfad5",
         "type": "github"
       },
       "original": {

+ 164 - 0
users/thomas/nvim/lsp.nix

@@ -0,0 +1,164 @@
+{
+  autoCmd = [
+    {
+      event = "LspAttach";
+      desc = "Keymaps for when LSP is attached";
+      group = "kickstart-lsp-attach";
+      callback.__raw = ''
+      function(event)
+        local map = function(keys, func, desc)
+          vim.keymap.set('n', keys, func, { buffer = event.buf, desc = 'LSP: ' .. desc })
+        end
+
+        -- Jump to the definition of the word under your cursor.
+        --  This is where a variable was first declared, or where a function is defined, etc.
+        --  To jump back, press <C-t>.
+        map('gd', require('telescope.builtin').lsp_definitions, '[G]oto [D]efinition')
+
+        -- Find references for the word under your cursor.
+        map('gr', require('telescope.builtin').lsp_references, '[G]oto [R]eferences')
+
+        -- Jump to the implementation of the word under your cursor.
+        --  Useful when your language has ways of declaring types without an actual implementation.
+        map('gI', require('telescope.builtin').lsp_implementations, '[G]oto [I]mplementation')
+
+        -- Jump to the type of the word under your cursor.
+        --  Useful when you're not sure what type a variable is and you want to see
+        --  the definition of its *type*, not where it was *defined*.
+        map('<leader>D', require('telescope.builtin').lsp_type_definitions, 'Type [D]efinition')
+
+        -- Fuzzy find all the symbols in your current document.
+        --  Symbols are things like variables, functions, types, etc.
+        map('<leader>ds', require('telescope.builtin').lsp_document_symbols, '[D]ocument [S]ymbols')
+
+        -- Fuzzy find all the symbols in your current workspace.
+        --  Similar to document symbols, except searches over your entire project.
+        map('<leader>ws', require('telescope.builtin').lsp_dynamic_workspace_symbols, '[W]orkspace [S]ymbols')
+
+        -- Rename the variable under your cursor.
+        --  Most Language Servers support renaming across files, etc.
+        map('<leader>rn', vim.lsp.buf.rename, '[R]e[n]ame')
+
+        -- Execute a code action, usually your cursor needs to be on top of an error
+        -- or a suggestion from your LSP for this to activate.
+        map('<leader>ca', vim.lsp.buf.code_action, '[C]ode [A]ction')
+
+        -- WARN: This is not Goto Definition, this is Goto Declaration.
+        --  For example, in C this would take you to the header.
+        map('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')
+
+        -- The following two autocommands are used to highlight references of the
+        -- word under your cursor when your cursor rests there for a little while.
+        --    See `:help CursorHold` for information about when this is executed
+        --
+        -- When you move your cursor, the highlights will be cleared (the second autocommand).
+        local client = vim.lsp.get_client_by_id(event.data.client_id)
+        if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_documentHighlight) then
+          local highlight_augroup = vim.api.nvim_create_augroup('kickstart-lsp-highlight', { clear = false })
+          vim.api.nvim_create_autocmd({ 'CursorHold', 'CursorHoldI' }, {
+            buffer = event.buf,
+            group = highlight_augroup,
+            callback = vim.lsp.buf.document_highlight,
+          })
+
+          vim.api.nvim_create_autocmd({ 'CursorMoved', 'CursorMovedI' }, {
+            buffer = event.buf,
+            group = highlight_augroup,
+            callback = vim.lsp.buf.clear_references,
+          })
+
+          vim.api.nvim_create_autocmd('LspDetach', {
+            group = vim.api.nvim_create_augroup('kickstart-lsp-detach', { clear = true }),
+            callback = function(event2)
+              vim.lsp.buf.clear_references()
+              vim.api.nvim_clear_autocmds { group = 'kickstart-lsp-highlight', buffer = event2.buf }
+            end,
+          })
+        end
+
+        -- The following code creates a keymap to toggle inlay hints in your
+        -- code, if the language server you are using supports them
+        --
+        -- This may be unwanted, since they displace some of your code
+        if client and client.supports_method(vim.lsp.protocol.Methods.textDocument_inlayHint) then
+          map('<leader>th', function()
+            vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled { bufnr = event.buf })
+          end, '[T]oggle Inlay [H]ints')
+        end
+      end
+      '';
+    }
+  ];
+
+  autoGroups = {
+    "kickstart-lsp-attach".clear = true;
+  };
+
+  keymaps = [
+    {
+      key = "<C-h>";
+      action.__raw = "vim.lsp.buf.signature_help";
+      mode = "i";
+    }
+  ];
+
+  plugins.lsp = {
+    enable = true;
+
+    keymaps = {
+      diagnostic = {
+        "<leader>vd" = "open_float";
+        "[d" = "goto_next";
+        "]d" = "goto_prev";
+      };
+
+      lspBuf = {
+        "<leader>f" = "format";
+        "gd" = "definition";
+        "K" = "hover";
+        "<leader>vws" = "workspace_symbol";
+        "<leader>vca" = "code_action";
+        "<leader>vrr" = "references";
+        "<leader>vrn" = "rename";
+      };
+    };
+
+    servers = {
+      astro.enable = true;
+      bashls.enable = true;
+
+      denols = {
+        enable = true;
+        rootDir = "require('lspconfig').util.root_pattern('deno.json')";
+        extraOptions.init_options = {
+          lint = true;
+          unstable = true;
+        };
+      };
+
+      gopls.enable = true;
+
+      # elixirls.enable = true;
+      nextls.enable = true;
+      nil_ls.enable = true;
+      tailwindcss.enable = true;
+
+      ts_ls = {
+        enable = true;
+        extraOptions.single_file_support = false;
+        rootDir = ''
+          require('lspconfig').util.root_pattern("tsconfig.json")
+          '';
+      };
+
+      volar.enable = true;
+      #   rootDir = ''
+      #     # root_pattern = { 'vite.config.ts', 'nuxt.config.ts' },
+      #
+      #
+      #     require('lspconfig').util.root_pattern("vite.config.mts")
+      #     '';
+      # };
+    };
+  };
+}

+ 8 - 1
users/thomas/nvim/plugins.nix

@@ -1,12 +1,19 @@
 {
   imports = [
-    ./plugins/cmp.nix
+    ./lsp.nix
+    ./plugins/avante.nix
+    ./plugins/conform.nix
     ./plugins/comment.nix
     ./plugins/fidget.nix
+    ./plugins/gitsigns.nix
     ./plugins/indent-blankline.nix
+    ./plugins/lint.nix
     ./plugins/mdx.nix
+    ./plugins/mini.nix
+    ./plugins/oil.nix
     ./plugins/telescope.nix
     ./plugins/tmux.nix
+    ./plugins/todo-comments.nix
     ./plugins/treesitter.nix
     ./plugins/web-devicons.nix
     ./plugins/which-key.nix