diff options
| author | christianchiarulli <[email protected]> | 2021-07-05 16:26:31 -0400 | 
|---|---|---|
| committer | christianchiarulli <[email protected]> | 2021-07-05 16:26:31 -0400 | 
| commit | 20485971641a9d916640ccad05586a641c984ed6 (patch) | |
| tree | d397a3a9adba502b4c26b802d897b8310972f76f /ftplugin/rust.lua | |
| parent | 56e82dac4497293541099185441485dd31e98dc8 (diff) | |
| parent | a469c710bfc01f291df68dba40464caaa2b496da (diff) | |
Merge branch 'master' of github.com:ChristianChiarulli/LunarVim into stable
Diffstat (limited to 'ftplugin/rust.lua')
| -rw-r--r-- | ftplugin/rust.lua | 172 | 
1 files changed, 83 insertions, 89 deletions
| diff --git a/ftplugin/rust.lua b/ftplugin/rust.lua index 2fddb982..2a106e7e 100644 --- a/ftplugin/rust.lua +++ b/ftplugin/rust.lua @@ -1,99 +1,93 @@  if O.lang.rust.rust_tools.active then -    local opts = { -        tools = { -- rust-tools options -            -- automatically set inlay hints (type hints) -            -- There is an issue due to which the hints are not applied on the first -            -- opened file. For now, write to the file to trigger a reapplication of -            -- the hints or just run :RustSetInlayHints. -            -- default: true -            autoSetHints = true, - -            -- whether to show hover actions inside the hover window -            -- this overrides the default hover handler -            -- default: true -            hover_with_actions = true, - -            runnables = { -                -- whether to use telescope for selection menu or not -                -- default: true -                use_telescope = true - -                -- rest of the opts are forwarded to telescope -            }, - -            inlay_hints = { -                -- wheter to show parameter hints with the inlay hints or not -                -- default: true -                show_parameter_hints = true, - -                -- prefix for parameter hints -                -- default: "<-" -                parameter_hints_prefix = "<-", - -                -- prefix for all the other hints (type, chaining) -                -- default: "=>" -                other_hints_prefix = "=>", - -                -- whether to align to the lenght of the longest line in the file -                max_len_align = false, - -                -- 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 -            }, - -            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"} -                } -            } +  local opts = { +    tools = { -- rust-tools options +      -- automatically set inlay hints (type hints) +      -- There is an issue due to which the hints are not applied on the first +      -- opened file. For now, write to the file to trigger a reapplication of +      -- the hints or just run :RustSetInlayHints. +      -- default: true +      autoSetHints = true, + +      -- whether to show hover actions inside the hover window +      -- this overrides the default hover handler +      -- default: true +      hover_with_actions = true, + +      runnables = { +        -- whether to use telescope for selection menu or not +        -- default: true +        use_telescope = true, + +        -- rest of the opts are forwarded to telescope +      }, + +      inlay_hints = { +        -- wheter to show parameter hints with the inlay hints or not +        -- default: true +        show_parameter_hints = true, + +        -- prefix for parameter hints +        -- default: "<-" +        parameter_hints_prefix = "<-", + +        -- prefix for all the other hints (type, chaining) +        -- default: "=>" +        other_hints_prefix = "=>", + +        -- whether to align to the lenght of the longest line in the file +        max_len_align = false, + +        -- 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, +      }, + +      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" },          }, - -        -- 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/CONFIG.md#rust_analyzer -        server = { -            cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"}, -            on_attach = require'lsp'.common_on_attach -        } -- rust-analyser options -    } -    require('rust-tools').setup(opts) - +      }, +    }, + +    -- 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/CONFIG.md#rust_analyzer +    server = { +      cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" }, +      on_attach = require("lsp").common_on_attach, +    }, -- rust-analyser options +  } +  require("rust-tools").setup(opts)  else - -    require'lspconfig'.rust_analyzer.setup { -        cmd = {DATA_PATH .. "/lspinstall/rust/rust-analyzer"}, -        on_attach = require'lsp'.common_on_attach, -        filetypes = {"rust"}, -        root_dir = require'lspconfig.util'.root_pattern("Cargo.toml", -                                                         "rust-project.json") -    } - +  require("lspconfig").rust_analyzer.setup { +    cmd = { DATA_PATH .. "/lspinstall/rust/rust-analyzer" }, +    on_attach = require("lsp").common_on_attach, +    filetypes = { "rust" }, +    root_dir = require("lspconfig.util").root_pattern("Cargo.toml", "rust-project.json"), +  }  end  -- TODO fix these mappings -vim.api.nvim_exec([[ +vim.api.nvim_exec( +  [[      autocmd Filetype rust nnoremap <leader>lm <Cmd>RustExpandMacro<CR>      autocmd Filetype rust nnoremap <leader>lH <Cmd>RustToggleInlayHints<CR>      autocmd Filetype rust nnoremap <leader>le <Cmd>RustRunnables<CR>      autocmd Filetype rust nnoremap <leader>lh <Cmd>RustHoverActions<CR> -    ]], true) - -if O.lang.rust.autoformat then -    require('lv-utils').define_augroups({ -        _rust_format = { -            {'BufWritePre', '*.rs', 'lua vim.lsp.buf.formatting_sync(nil,1000)'} -        } -    }) -end - +    ]], +  true +) | 
