{ config, lib, ... }: with lib; with builtins; let cfg = config.vim.lsp; in { config = mkIf (cfg.enable && cfg.lspsaga.enable) { vim.startPlugins = ["lspsaga"]; vim.maps.visual = { "ca" = {action = ":lua require('lspsaga.codeaction').range_code_action()";}; }; vim.maps.normal = { "lf" = {action = "lua require'lspsaga.provider'.lsp_finder()";}; "lh" = {action = "lua require('lspsaga.hover').render_hover_doc()";}; "" = {action = "lua require('lspsaga.action').smart_scroll_with_saga(1)";}; "" = {action = "lua require('lspsaga.action').smart_scroll_with_saga(-1)";}; "lr" = {action = "lua require'lspsaga.rename'.rename()";}; "ld" = {action = "lua require'lspsaga.provider'.preview_definition()";}; "ll" = {action = "lua require'lspsaga.diagnostic'.show_line_diagnostics()";}; "lc" = {action = "lua require'lspsaga.diagnostic'.show_cursor_diagnostics()";}; "lp" = {action = "lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_prev()";}; "ln" = {action = "lua require'lspsaga.diagnostic'.lsp_jump_diagnostic_next()";}; } // ( if (!cfg.nvimCodeActionMenu.enable) then { "ca" = {action = "lua require('lspsaga.codeaction').code_action()";}; } else {} ) // ( if (!cfg.lspSignature.enable) then { "ls" = {action = "lua require('lspsaga.signaturehelp').signature_help()";}; } else {} ); vim.luaConfigRC.lspsage = nvim.dag.entryAnywhere '' -- Enable lspsaga local saga = require 'lspsaga' saga.init_lsp_saga() ''; }; }