From c2a862b0f0c067a78e93aac2bf2d60cb60bda9e0 Mon Sep 17 00:00:00 2001
From: Jan Hensel <ceo@dubious.engineering>
Date: Wed, 28 Aug 2024 10:27:55 +0200
Subject: [PATCH] nvim: Replace rust-tools

---
 .config/nvim/lua/plugins.lua                  |  28 +++-
 .config/nvim/lua/ztf/configure/rust-tools.lua | 131 ------------------
 .config/nvim/lua/ztf/lsp.lua                  |  17 ---
 3 files changed, 23 insertions(+), 153 deletions(-)
 delete mode 100644 .config/nvim/lua/ztf/configure/rust-tools.lua

diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua
index 698ec51..601e8a4 100644
--- a/.config/nvim/lua/plugins.lua
+++ b/.config/nvim/lua/plugins.lua
@@ -41,8 +41,8 @@ local plugins = {
       ensure_installed = {
         "tinymist",
         "rust_analyzer",
-        "rust_analyzer",
         "lua_ls",
+        "gopls",
       },
     },
     dependencies = { "williamboman/mason.nvim" },
@@ -63,11 +63,29 @@ local plugins = {
   },
   -- rust
   {
-    'simrat39/rust-tools.nvim',
-    lazy = true,
-    ft = 'rust',
-    config = function() require 'ztf.configure.rust-tools' end,
+    'mrcjkb/rustaceanvim',
+    version = '^5', -- Recommended
+    lazy = false, -- This plugin is already lazy
     dependencies = { 'mfussenegger/nvim-dap', 'neovim/nvim-lspconfig' },
+    -- TODO: somehow might need to add this to setup
+    --
+    --     lspconfig.rust_analyzer.setup {
+    --       -- Other Configs ...
+    --       settings = {
+    --         ["rust-analyzer"] = {
+    --           -- Other Settings ...
+    --           procMacro = {
+    --             ignored = {
+    --               leptos_macro = {
+    --                 -- optional: --
+    --                 -- "component",
+    --                 "server",
+    --               },
+    --             },
+    --           },
+    --         },
+    --       }
+    --     }
   },
   -- java 🤮
   {
diff --git a/.config/nvim/lua/ztf/configure/rust-tools.lua b/.config/nvim/lua/ztf/configure/rust-tools.lua
deleted file mode 100644
index 4b99779..0000000
--- a/.config/nvim/lua/ztf/configure/rust-tools.lua
+++ /dev/null
@@ -1,131 +0,0 @@
-require('rust-tools').setup{
-  -- Rust Tools Configuration (from default options) {{{
-    tools = { -- rust-tools options
-        -- Automatically set inlay hints (type hints)
-        autoSetHints = true,
-
-        -- TODO: there used to be a setting here (hover_with_actions=true), but
-        --       it was deprecated in favor of mapping to a command
-        --       :RustHoverActions instead; done yet?
-
-    -- how to execute terminal commands
-    -- options right now: termopen / quickfix
-    executor = require("rust-tools/executors").termopen,
-
-        runnables = {
-            -- whether to use telescope for selection menu or not
-            use_telescope = false
-
-            -- rest of the opts are forwarded to telescope
-        },
-
-        debuggables = {
-            -- whether to use telescope for selection menu or not
-            use_telescope = false
-
-            -- rest of the opts are forwarded to telescope
-        },
-
-        -- These apply to the default RustSetInlayHints command
-        inlay_hints = {
-
-            -- Only show inlay hints for the current line
-            only_current_line = true,
-
-            -- Event which triggers a refersh of the inlay hints.
-            -- You can make this "CursorMoved" or "CursorMoved,CursorMovedI" but
-            -- not that this may cause  higher CPU usage.
-            -- This option is only respected when only_current_line and
-            -- autoSetHints both are true.
-            only_current_line_autocmd = "CursorMoved",
-
-            -- wheter to show parameter hints with the inlay hints or not
-            show_parameter_hints = true,
-
-            -- prefix for parameter hints
-            parameter_hints_prefix = "<- ",
-
-            -- prefix for all the other hints (type, chaining)
-            other_hints_prefix = "=> ",
-
-            -- whether to align to the length of the longest line in the file
-            max_len_align = true,
-
-            -- padding from the left if max_len_align is true
-            max_len_align_padding = 1,
-
-            -- whether to align to the extreme right or not
-            right_align = false,
-
-            -- padding from the right if right_align is true
-            right_align_padding = 7,
-
-            -- The color of the hints
-            highlight = "DiagnosticHint",
-        },
-
-        hover_actions = {
-            -- the border that is used for the hover window
-            -- see vim.api.nvim_open_win()
-            border = {
-                {" ", "FloatBorder"}, {" ", "FloatBorder"},
-                {" ", "FloatBorder"}, {" ", "FloatBorder"},
-                {" ", "FloatBorder"}, {" ", "FloatBorder"},
-                {" ", "FloatBorder"}, {" ", "FloatBorder"}
-            },
-
-            -- whether the hover action window gets automatically focused
-            auto_focus = false
-        },
-
-        -- settings for showing the crate graph based on graphviz and the dot
-        -- command
-        crate_graph = {
-            -- Backend used for displaying the graph
-            -- see: https://graphviz.org/docs/outputs/
-            -- default: x11
-            backend = "x11",
-            -- where to store the output, nil for no output stored (relative
-            -- path from pwd)
-            -- default: nil
-            output = nil,
-            -- true for all crates.io and external crates, false only the local
-            -- crates
-            -- default: true
-            full = true,
-        }
-    },
-
-    -- all the opts to send to nvim-lspconfig
-    -- these override the defaults set by rust-tools.nvim
-    -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer
-    server = {
-      cmd = { "rust-analyzer" },
-      filetypes = { "rust" },
-      settings = {
-        ["rust-analyzer"] = {
-          checkOnSave = {
-            allFeatures = true,
-            overrideCommand = {
-              "cargo",
-              "clippy",
-              "--workspace",
-              "--all-targets",
-              "--message-format=json",
-            },
-          },
-        },
-      },
-    },
-
-    -- debugging stuff
-    dap = {
-        adapter = {
-            type = 'executable',
-            command = 'lldb-vscode',
-            name = "rt_lldb"
-        }
-    }
-    -- }}}
-}
-
diff --git a/.config/nvim/lua/ztf/lsp.lua b/.config/nvim/lua/ztf/lsp.lua
index c85544f..3e034c6 100644
--- a/.config/nvim/lua/ztf/lsp.lua
+++ b/.config/nvim/lua/ztf/lsp.lua
@@ -114,20 +114,3 @@ if not configs.muddles then
   }
 end
 lspconfig.muddles.setup {}
-lspconfig.rust_analyzer.setup {
-  -- Other Configs ...
-  settings = {
-    ["rust-analyzer"] = {
-      -- Other Settings ...
-      procMacro = {
-        ignored = {
-          leptos_macro = {
-            -- optional: --
-            -- "component",
-            "server",
-          },
-        },
-      },
-    },
-  }
-}
-- 
GitLab